![](/img/trans.png)
[英]Getting “Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client” when trying to redirect
[英]this is the error i m getting Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
錯誤:
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;
看起來這部分是導致錯誤的原因
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');
});
我看到這部分有幾個問題:-
if(err)
和throw err
需要在同一行。res.json(user)
的主要問題是在res.setHeader()
之前執行,這就是您收到錯誤的原因。 如果您使用res.json()
,您也不需要將 header 設置為application/json
所以沿着這些思路的東西應該工作
router.get('/Users', ( req, res )=>{
// i am assuming that's how the model works to get all users. change if needed
user.find({}, function(err, users){
if(err) throw new Error(err)
res.json(users)
})
});
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.