美文网首页
Node.js HTTP模块

Node.js HTTP模块

作者: 合肥黑 | 来源:发表于2019-01-17 09:56 被阅读10次
    一、创建一个 HTTP 服务器

    参考《Node.js开发指南 ByVoid》 Page27
    建立一个名为 app.js 的文件,内容为:

    //app.js
    var http = require('http');
    http.createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write('<h1>Node.js</h1>');
    res.end('<p>Hello World</p>');
    }).listen(3000);
    console.log("HTTP server is listening at port 3000.");
    

    接下来运行 node app.js 命令,打开浏览器访问 http://127.0.0.1:3000

    用 Node.js 实现的最简单的 HTTP 服务器就这样诞生了。这个程序调用了 Node.js 提供的http 模块,对所有 HTTP 请求答复同样的内容并监听 3000 端口。在终端中运行这个脚本时,我们会发现它并不像 Hello World一样结束后立即退出,而是一直等待,直到按下 Ctrl +C 才会结束。这是因为 listen 函数中创建了事件监听器,使得 Node.js 进程不会退出事件循环。我们会在后面的章节中详细介绍这其中的奥秘。

    二、小技巧——使用 supervisor

    参考《Node.js开发指南 ByVoid》 Page27
    如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止Node.js 再重新运行才会奏效。这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚本文件,以后都会直接访问内存,避免重复载入,而 PHP 则总是重新读取并解析脚本(如果没有专门的优化配置)。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。supervisor 可以帮助你实现这个功能,它会监视你对代码的改动,并自动重启 Node.js。使用方法很简单,首先使用 npm 安装 supervisor:
    npm install -g supervisor
    如果你使用的是 Linux 或 Mac,直接键入上面的命令很可能会有权限错误。原因是 npm需要把 supervisor 安装到系统目录,需要管理员授权,可以使用 sudo npm install -gsupervisor 命令来安装。
    接下来,使用 supervisor 命令启动 app.js:

    supervisor app.js
    DEBUG: Running node-supervisor with
    DEBUG: program 'app.js'
    DEBUG: --watch '.'
    DEBUG: --extensions 'node|js'
    DEBUG: --exec 'node'
    DEBUG: Starting child process with 'node app.js'
    DEBUG: Watching directory '/home/byvoid/.' for changes.
    HTTP server is listening at port 3000.
    

    当代码被改动时,运行的脚本会被终止,然后重新启动。在终端中显示的结果如下:

    DEBUG: crashing child
    DEBUG: Starting child process with 'node app.js'
    HTTP server is listening at port 3000.
    

    supervisor 这个小工具可以解决开发中的调试问题。

    三、参考Node入门 一本全面的Node.js教程

    相关文章

      网友评论

          本文标题:Node.js HTTP模块

          本文链接:https://www.haomeiwen.com/subject/wncovftx.html