【发布时间】:2021-04-16 04:10:54
【问题描述】:
import http from "http"
import fs from "fs"
function readDemo(path){
return new Promise((resolve,reject)=>{
fs.readFile(path,(err,data)=>{
if(err)
reject(err);
else
resolve(data);
})
})
}
const server = http.createServer((req,res)=>{
if(req.url === `/`){
res.writeHead(200,{"Content-type":"text/html"});
readDemo(`./todo.html`)//
.then(data => res.write(data))
.catch(console.log);
res.end();
}
})
server.listen(5000);
我正在尝试通过请求 localhost:5000 在 Nodejs 中运行我自己的服务器来加载 todo.html
似乎 fs.readFile 需要很长时间来加载 css 和 javascript 部分,所以我做出了 Promise 声明,让 res.write 等待 fs.readFile 完成加载 todo.html 包含链接的 css 和 javascript。
但是代码集错误提示
events.js:292
throw er; // Unhandled 'error' event
^
Error [ERR_STREAM_WRITE_AFTER_END]: write after end
at writeAfterEnd (_http_outgoing.js:668:15)
at write_ (_http_outgoing.js:680:5)
at ServerResponse.write (_http_outgoing.js:661:15)
at file:///C:/Users/KUSW-14/Downloads/web_study-main/web_study-main/to_do_list/main.js:19:31
Emitted 'error' event on ServerResponse instance at:
at writeAfterEndNT (_http_outgoing.js:727:7)
at processTicksAndRejections (internal/process/task_queues.js:81:21) {
code: 'ERR_STREAM_WRITE_AFTER_END'
}
谁能帮我看看我的代码有什么问题?
【问题讨论】:
标签: node.js promise request fs