我只是想创建一个 node js 服务器,它从我的文件夹中提供静态文件
const http = require('http');
const fs = require('fs');
const server = http.createServer((req,res)=>{
const readStream = fs.createReadStream('./static/index.html');
res.writeHead(200,{'Content-type':'text/html'});
readStream.pipe(res);
res.end();
});
server.listen(5000,()=>{
console.log("server running at port 5000");
})
我有一个名为 static
的文件夹,其中包含一个名为 index.html
的文件,其中包含简单的 html 代码。
服务器运行成功,但没有发送响应
答案 0 :(得分:0)
尝试使用 fs.readFile 而不是 fs.createReadStream
const http = require('http');
const fs = require('fs');
const server = http.createServer((req, res) => {
fs.readFile(__dirname + '/static/index.html', (err, data) => {
if (err) {
res.writeHead(404);
res.end(JSON.stringify(err));
return;
}
res.writeHead(200);
res.end(data);
})
});
server.listen(5000, () => {
console.log("> server on 5000");
});
答案 1 :(得分:0)
如评论部分所述,.createReadStream will end the stream automatically when the end of the file is reached
所以我们只需要删除 res.end()
const http = require('http');
const fs = require('fs');
const server = http.createServer((req,res)=>{
const readStream = fs.createReadStream('./static/index.html');
res.writeHead(200,{'Content-type':'text/html'});
readStream.pipe(res);
res.end();
});
server.listen(5000,()=>{
console.log("server running at port 5000");
})