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服務器程序!函數