HTTP 服务器

简单 HTTP 服务器

createServer

const http = require("http");
const url = require("url");
const path = require("path");
const fs = require("fs");
const port = process.argv[2] || 8033;

const server = http
  .createServer(function (request, response) {
    const uri = url.parse(request.url).pathname;
    let filename = path.join(process.cwd(), uri);

    fs.exists(filename, function (exists) {
      if (!exists) {
        response.writeHead(404, { "Content-Type": "text/plain" });
        console.log("node.js: 404 Not Found");
        response.write("404 Not Found\n");
        response.end();
        return;
      }

      if (fs.statSync(filename).isDirectory()) filename += "/index.html";

      fs.readFile(filename, "binary", function (err, file) {
        if (err) {
          response.writeHead(500, { "Content-Type": "text/plain" });
          response.write(err + "\n");
          response.end();
          return;
        }

        response.writeHead(200);
        response.write(file, "binary");
        response.end();
      });
    });
  })
  .listen(parseInt(port, 10));

console.log(
  "Static file server running at\n  => http://localhost:" + port + "/"
);

在 Chrome 中调试 NodeJS 应用

NodeJS 在 6.3.0 版本之后允许使用 Chrome 来调试 NodeJS 应用,从而方便了开发者进行断点调试与单步运行,以及对堆栈信息进行查看。安装好 node 之后我们可以使用--inspect选项来运行应用:

node --inspect index.js

我们也可以选择直接从第一行代码开始进行断点调试:

node --inspect --debug-brk index.js

运行上述命令之后,控制台中会返回该应用对应的 Chrome 开发工具链接,譬如:

chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/69beb5d3-2b1c-4513-aa4b-78d1eb1865ea

在 Chrome 中直接打开该链接,即可开始调试:

下一页