express中resp.send() 和 resp.json() 这两个方法是响应像客户端发送数据,nodejs是通过流的方式来发送和接收数据的,所以,发送的时候,最终都会,resp.end()结束写入(原生nodejs代码)而resp.send()和 resp.json()两个方法都封装了 end()写入完毕方法,当然不能重复使用!
如果报错以下内容,肯定就是你send方法用了多次!
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at ServerResponse.setHeader (_http_outgoing.js:470:11)
at ServerResponse.header (D:\GOpath\src\KirinProject\expressServer\node_modules\express\lib\response.js:767:10)
at ServerResponse.send (D:\GOpath\src\KirinProject\expressServer\node_modules\express\lib\response.js:170:12)
at done (D:\GOpath\src\KirinProject\expressServer\node_modules\express\lib\response.js:1004:10)
at tryHandleCache (D:\GOpath\src\KirinProject\expressServer\node_modules\ejs\lib\ejs.js:257:5)
at View.exports.renderFile [as engine] (D:\GOpath\src\KirinProject\expressServer\node_modules\ejs\lib\ejs.js:480:10)
at View.render (D:\GOpath\src\KirinProject\expressServer\node_modules\express\lib\view.js:135:8)
at tryRender (D:\GOpath\src\KirinProject\expressServer\node_modules\express\lib\application.js:640:10)
at Function.render (D:\GOpath\src\KirinProject\expressServer\node_modules\express\lib\application.js:592:3)
at ServerResponse.render (D:\GOpath\src\KirinProject\expressServer\node_modules\express\lib\response.js:1008:7)