这是我收到的错误[ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后无法设置标头

问题描述 投票:0回答:1

错误

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
    at ServerResponse.setHeader (_http_outgoing.js:535:11)
    at ServerResponse.header (C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\express\lib\response.js:771:10)
    at ServerResponse.send (C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\express\lib\response.js:170:12)
    at ServerResponse.json (C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\express\lib\response.js:267:15)
    at C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\API\Routes\Signuproutes.js:109:13
    at C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\mongoose\lib\model.js:4876:16
    at C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\mongoose\lib\helpers\promiseOrCallback.js:16:11
    at C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\mongoose\lib\model.js:4899:21
    at C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\mongoose\lib\model.js:493:16
    at C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\kareem\index.js:246:48
    at next (C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\kareem\index.js:167:27)
    at next (C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\kareem\index.js:169:9)
    at Kareem.execPost (C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\kareem\index.js:217:3)
    at _handleWrapError (C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\kareem\index.js:245:21)
    at _cb (C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\kareem\index.js:304:16)
    at C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\mongoose\lib\model.js:344:9
Emitted 'error' event on Function instance at:
    at C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\mongoose\lib\model.js:4878:13
    at C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\mongoose\lib\helpers\promiseOrCallback.js:16:11
    [... lines matching original stack trace ...]
    at C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\mongoose\lib\model.js:344:9
    at C:\Users\Abubakar\Desktop\Desktop Docs\Full Stack Web Devop Data\FPLatest\FinalFullstack\node_modules\kareem\index.js:135:16
    at processTicksAndRejections (internal/process/task_queues.js:79:11) {
  code: 'ERR_HTTP_HEADERS_SENT'

代码

  const express=require('express');

  const router=express.Router();

  require("dotenv").config()

  const user = require('..//Models/User.js')

  const Posts=require('../Models/Posts')

  const comments=require('../Models/comments')

  const bcrypt=require('bcrypt')

  const jwt=require("jsonwebtoken")

  const mongoose=require('mongoose')
  mongoose.connect("mongodb://localhost:27017/useres23213s",{useCreateIndex: true,useNewUrlParser: true,useUnifiedTopology: true})




  //Getting All Users
  router.get('/Users',async(req,res,next)=>{

      await user.find(function(err,user){

        if(err)
        throw err

          res.json(user)

            })
    res.setHeader('Content-Type','application/json');
  });


  //Getting All Blogs
  router.get('/GetBlogs',(req,res,next)=>{

    Posts.find(function(err,Posts){

    if(!err){



      res.json(Posts)

    }})

  });





  //Sign Up User
  router.post('/Users',(req,res)=>{


    let newuser=new user( {


      name:req.body.name,
      email:req.body.email,
      password:req.body.password,


  });


    if(!req.body.name || !req.body.email || !req.body.password){


      res.json("Please fill the Credentials")
      res.end()
      return

    }

    user.findOne({name:req.body.name},(err,User)=>{

      if(User)
      {

          res.json("User Name Already Registered")
          res.end()
          return
      }

    })


  user.findOne({email:req.body.email},(err,User)=>{
    if(User)
    {
      res.json("Email Already Registered")
      res.end()
      return
    }

  })

  newuser.save((err,user)=>
  {
      if (err)

      {
        res.json({msg:' Failed adding User in Database'});
        res.end()
        throw err
        return
      }
      else
      {
          res.json({msg:' User added in Database'});;
          res.end()
      }
  })

  });






  process.env.SecretKey="SecretKey"
  //User Login
  router.post('/Login',(req,res)=>{

    if(!req.body.password || !req.body.name){
      return res.json({success:false,msg:"Please Fill the Credentials"})
    }

    user.findOne({name:req.body.name},(err,User)=>{

      if(err || !User){

        return res.json({success:false,msg:"Username not Registered"})

            }
    else
    {
        if(req.body.password!=User.password)
        {
                  return res.json({success:false,msg:"Password Invalid"})
        }

        const payload={

          id:User._id,
          email:User.email,
          Username:User.Username,

        }
        date=Date.now()
        token=jwt.sign({payload},process.env.SecretKey,(err,token)=>{

            res.json({success:true,msg:"User Logged in",token,Userid:{Userid:User.email},UserloggedIn:{UserloggedIn:date}})

          })
    }
  })
  })







  router.post('/postcomment',(req,res)=>{
    let newcomment=new comments({

      commentBody:req.body.commentBody,
      commentCreatedBy:req.body.commentCreatedBy,
      Posttitle:req.body.Posttitle
    })



    if(!req.body.commentBody){

      res.json({success:false,msg:"Enter Comment Body"})
      return

    }




    //Posting a comment
    newcomment.save((err,comment)=>{

      if(err)
      {
        res.json({success:false,msg:"Error in Posting Comment"})
        throw err
        return

      }
      else
      {
        res.json({success:true,msg:"Comment Posted..",comment})
      }

    })
  })



  //Creating a Post/Blog/Question
  router.post('/CreatePost',(req,res)=>{
    let newpost=new Posts({
        title:req.body.title,
        Body:req.body.Body,
        CreatedBy:req.body.CreatedBy,
        Createdat:req.body.Createdat,
    })

    if(!req.body.title)
    {
      res.json({
        success:false,
        msg:"Post Must have A title"
      })
      return
    }



    if(!req.body.Body){
      res.json({
        success:false,
        msg:"Post Must have A title"
      })
      return
    }

    newpost.save((err,post)=>{

      if(!err)
        {
          res.json(
            {success:true,
            msg:"Post Saved"}
            )

      }
      else
      throw err
      return
    })

    res.json({
      success:true,
      msg:"Posted.."
    })})
  module.exports=router;
javascript node.js mean-stack
1个回答
0
投票

看起来这部分是引起错误的原因

router.get('/Users',async(req,res,next)=>{

      await user.find(function(err,user){

        if(err)
        throw err

          res.json(user)

            })
    res.setHeader('Content-Type','application/json');
  });
© www.soinside.com 2019 - 2024. All rights reserved.