亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

node + express + mongodb 的問題,能收到請求,但是不能做出相應頁面。不知道怎么解決~求大神幫忙,急~~~

node + express + mongodb 的問題,能收到請求,但是不能做出相應頁面。不知道怎么解決~求大神幫忙,急~~~

正在睡覺 2017-06-08 01:35:11
node 報錯信息如下:( ? ? ? ??Error: Can't set headers after they are sent.? ? at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:357:11)? ? at ServerResponse.header (D:\Hexin\FrontEnd\movie\node_modules\express\lib\response.js:730:10)? ? at ServerResponse.send (D:\Hexin\FrontEnd\movie\node_modules\express\lib\response.js:170:12)? ? at done (D:\Hexin\FrontEnd\movie\node_modules\express\lib\response.js:967:10)? ? at Object.exports.renderFile (D:\Hexin\FrontEnd\movie\node_modules\pug\lib\index.js:422:12)? ? at View.exports.__express [as engine] (D:\Hexin\FrontEnd\movie\node_modules\pug\lib\index.js:465:11)? ? at View.render (D:\Hexin\FrontEnd\movie\node_modules\express\lib\view.js:128:8)? ? at tryRender (D:\Hexin\FrontEnd\movie\node_modules\express\lib\application.js:640:10)? ? at EventEmitter.render (D:\Hexin\FrontEnd\movie\node_modules\express\lib\application.js:592:3)? ? at ServerResponse.render (D:\Hexin\FrontEnd\movie\node_modules\express\lib\response.js:971:7)? ? at D:\Hexin\FrontEnd\movie\app.js:90:9? ? at Layer.handle [as handle_request] (D:\Hexin\FrontEnd\movie\node_modules\express\lib\router\layer.js:95:5)? ? at next (D:\Hexin\FrontEnd\movie\node_modules\express\lib\router\route.js:137:13)? ? at Route.dispatch (D:\Hexin\FrontEnd\movie\node_modules\express\lib\router\route.js:112:3)? ? at Layer.handle [as handle_request] (D:\Hexin\FrontEnd\movie\node_modules\express\lib\router\layer.js:95:5)? ? at D:\Hexin\FrontEnd\movie\node_modules\express\lib\router\index.js:281:22GET / 404 76.603 ms - 645瀏覽器報錯:路由:控制:( ? ?
查看完整描述

1 回答

已采納
?
ruibin

TA貢獻358條經驗 獲得超213個贊

你的express.js有問題。引入router的位置。必須放在錯誤處理之前,也就是說 :


app.use(bodyParser.urlencoded({extended: false})); ? ?

require('../app/routes/news.server.routes')(app); ? ?


app.use(function(req, res, next) { ? ?

res.status(404); ? ?

try { ? ?

return res.json('NOT FOUND'); ? ?

} catch (e) { ? ?

console.error('404 set header after sent'); ? ?

} ? ?


}); ? ?


app.use(function(err, req, res, next) { ? ?

if (!err) { ? ?

next() ? ?

} else { ? ?

res.status(500); ? ?

try { ? ?

return res.json(err.message || '500 SERVER ERROR'); ? ?

} catch (e) { ? ?

console.error('500 set header after sent'); ? ?

} ? ?

} ? ?

}); ? ?


看見加粗的了嗎?后面兩個錯誤處理必須放在最后,因為路由匹配規則是從上到下,匹配到了就終止!



查看完整回答
1 反對 回復 2017-06-08
  • ruibin
    ruibin
    你可以去 https://github.com/maoruibin001/CMS/blob/master/config/express.js#L29 地址把我的app.js復制過去,試試。
  • ruibin
    ruibin
    額,是express.js
  • 1 回答
  • 0 關注
  • 2232 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號