Node.js开发的目的就是为了用JavaScript编写Web服务器程序。由于JavaScript实际上已经统治了浏览器端的脚本,其优点就是有世界上数量最多的前端开发人员。若是已经掌握了JavaScript前端开发,再学习一下如何将JavaScript应用在后端开发,就是名副其实的全栈了。javascript
要开发HTTP服务器程序,从头处理TCP链接,解析HTTP是不现实的。这些工做实际上已经由Node.js自带的http
模块完成了。应用程序并不直接和HTTP协议打交道,而是操做http
模块提供的request
和response
对象。html
request
对象封装了HTTP请求,咱们调用request
对象的属性和方法就能够拿到全部HTTP请求的信息;前端
response
对象封装了HTTP响应,咱们操做response
对象的方法,就能够把HTTP响应返回给浏览器。java
用Node.js实现一个HTTP服务器程序很是简单。咱们来实现一个最简单的Web程序hello.js
,它对于全部请求,都返回Hello world!
:node
'use strict'; // 导入http模块: var http = require('http'); // 建立http server,并传入回调函数: var server = http.createServer(function (request, response) { // 回调函数接收request和response对象, // 得到HTTP请求的method和url: console.log(request.method + ': ' + request.url); // 将HTTP响应200写入response, 同时设置Content-Type: text/html: response.writeHead(200, {'Content-Type': 'text/html'}); // 将HTTP响应的HTML内容写入response: response.end('<h1>Hello world!</h1>'); }); // 让服务器监听8080端口: server.listen(8080); console.log('Server is running at http://10.138.253.3:8080/');
在命令提示符下运行该程序,能够看到如下输出:后端
$ node http_test.js Server is running at http://10.138.253.3:8080/
不要关闭命令提示符,直接打开浏览器输入http://localhost:8080
,便可看到服务器响应的内容:浏览器
同时,在命令提示符窗口,能够看到程序打印的请求信息:服务器
GET: / GET: /favicon.ico
这就是咱们编写的第一个HTTP服务器程序!函数