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