美文网首页
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模块

    内置HTTP模块 Node.js 中有 HTTP 这个内置模块,HTTP 模块允许 Node.js 通过超文本传输...

  • 兄弟会8.9号笔记

    node.js模块学习 http 模块 fs 模块 url 模块 http 模块 HTTP http.STA...

  • Node.js HTTP模块

    内置HTTP模块 Node.js中有HTTP这个一个内置模块,它允许Node.js通过超文本传输协议(HTTP)传...

  • Node.js与内置模块

    目录: 认识Node.js fs文件系统模块 path路径模块 http模块 认识Node.js 为啥JavaSc...

  • Node模块之http模块(七)

    Node.js标准库提供了 http 模块,是Node.js中非常重要的一个核心模块。通过http模块,你可以使用...

  • Node.js 之 http模块

    http模块 引入http模块 开启一个本地服务器需要Node.js中http核心模块http--模块提供了搭建本...

  • Nodejs的模块引入与回调函数

    Node.js模块系统 在 Node.js 中,引入一个模块 如: var http=require('fs');...

  • Node.js(七)HTTP模块http

    http是Node.js的核心模块之一,要使用http模块,需要:const http = require('ht...

  • http模块

    什么是http模块 http模块是Node.js官方提供的、用来创建web服务器的模块。通过 http模块提供的h...

  • Node.js Web 模块

    Node.js 提供了 http 模块,http 模块主要用于搭建 HTTP 服务端和客户端,使用 HTTP 服务...

网友评论

      本文标题:Node.js HTTP模块

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