我正在尝试创建一个http服务器。服务器已正确创建,但未显示html内容。当我没有听众的时候它就可以工作。那我失败了什么?
app.js
var server = require("./server.js");
server.server3((req, res, html) => {
res.writeHead(200, {"Content-Type": "text/html"});
html.pipe(res);
res.end();
}, 3000, "./index.html");
server.js
function Server3(applyFunction, port, path) {
var fs = require("fs"),
html = fs.createReadStream(path.toString().trim()), // Create stream from path
http = require("http");
html.on("data", _ => {})
.on("end", () => { // create server when all data is ready
http.createServer(function(req, res){ // createServer method
applyFunction(req, res, html); // execute the function
}).listen(+port); // add the port
});
}
module.exports.server3 = Server3;
答案 0 :(得分:0)
如果您只是尝试在node.js上创建HTTP服务器,那么使用快速框架(npm install express --save
)可以大大简化您的生活。如果将index.html
文件放在与app.js
相同的目录中,则可以使用以下5行代码创建服务器:
// Setup Express
const express = require("express");
const app = express();
// Use main directory to find HTML file
app.use(express.static(__dirname));
// Render index.html
app.get("/", (req, res) => res.render("index"));
// Start Server on port 3000
app.listen(3000, () => console.log('Server started on port 3000'));