前言
對于初入node的小白,可能除了知道node是運行在服務端的js外,其他還是一頭霧水;
那么本節(jié)內(nèi)容將通過 搭建一個簡單的web服務器的方式,讓讀者對node有個大致宏觀的了解,話不多說,讓我們開始吧!
搭建一個簡單的web服務器的步驟
1.生成如下目錄
nodeLearn(文件夾)
begining(文件夾)
sever.js
2.打開 官網(wǎng),復制官網(wǎng)-創(chuàng)建web服務器的示例代碼到 sever.js 保存
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
3.運行 server.js
打開[begining]文件夾
$ cd nodeLearn/begining
運行 node.js
$ node server.js
可以看到命令行有日志打印出來了,如下
Server running at http://127.0.0.1:3000/
4.查看搭建好的web服務器
在瀏覽器輸入
127.0.0.1:3000,刷新頁面
頁面有sever.js打印的hello word
一個簡單的有請求也有返回的五臟俱全的web服務器搭建成功
關(guān)于示例的分析與總結(jié)
1. 關(guān)于【創(chuàng)建web服務器】示例代碼的分析
/*
* 加載【http】模塊,該模塊由javascript來編寫
* 職責是創(chuàng)建 web 服務器 及 處理http相關(guān)的任務等
*/
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
// 通過 createServer 創(chuàng)建 web服務器
const server = http.createServer((req, res) => {
//req 請求體:獲取請求相關(guān)的信息(請求來自哪里、是get還是post)
//res 響應體:告訴服務器給請求響應什么內(nèi)容
// 設(shè)置響應的請求頭狀態(tài)碼是200
res.statusCode = 200;
// 設(shè)置返回的文本類型:純文本
res.setHeader('Content-Type', 'text/plain');
// 最后給客戶端返回 hello world
res.end('Hello World!\n');
});
// 通過 listen 監(jiān)聽端口 的請求
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
2.node中體驗js環(huán)境
2.1 nodejs本質(zhì)上javascript的執(zhí)行環(huán)境
- 在瀏覽器中體驗js環(huán)境:
打開控制臺,切換到 console 的窗口,可以執(zhí)行js邏輯,回車可得到結(jié)果
var a=1;var b=2; function add(a,b){return a+b;} add(a,b);
- 在node中體驗js環(huán)境:
退出sever.js程序運行
Ctrl+C
進入node環(huán)境
node
輸入js邏輯,回車可得到結(jié)果var a=1;var b=2; function add(a,b){return a+b;} add(a,b);
2.2 兩者不同之處
-
他們所在的環(huán)境頂層,宿主所在的全局變量不太一樣,如:
瀏覽器里輸入
window,會出現(xiàn)window 的掛載屬性等等;命令行輸入window會報錯
node環(huán)境里輸入process,會出現(xiàn)process的掛載屬性等等;瀏覽器輸入process會報錯( [process]:nodeJs的一個模塊,在此不做詳細了解)
目錄
nodeJS【入門】系列 會持續(xù)更新,后續(xù)將 推出【進階】及【實戰(zhàn)】系列,敬請期待......
您的筆芯,將是我力量的源泉!