NodeJS

时间:2018-02-02 21:44:54

标签: node.js

我正在尝试创建一个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;

1 个答案:

答案 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'));