眾所周知,服務(wù)器是通過(guò)安裝特殊的軟件(或者運(yùn)行特殊的代碼)來(lái)提供網(wǎng)絡(luò)服務(wù)的機(jī)器。那么我們的電腦可不可以弄成一個(gè)服務(wù)器,來(lái)供他人訪問(wèn)呢?
答案是可以的,這里我們需要安裝一下node.js這個(gè)軟件。傳送門:Node.js 中文網(wǎng)
下載好后按住Win + R 運(yùn)行cmd小黑窗,輸入node -v 查看當(dāng)前node的版本,如果能出現(xiàn)以下以v開(kāi)頭的版本號(hào),說(shuō)明安裝成功
第一步,新建一個(gè)js文件(myServer.js)
?第二步,在js文件(myServer.js)中 寫入代碼
// 1. 引入http、url模塊
const http = require('http');
const url = require('url');
// 2. 創(chuàng)建服務(wù)
const server = http.createServer(function (req, res) {
// 設(shè)置響應(yīng)頭的編碼格式為utf-8
res.setHeader('content-type', 'text/html;charset=utf8');
// 獲取請(qǐng)求地址
var urlObj = url.parse(req.url);
// 每次刷新時(shí),瀏覽器會(huì)默認(rèn)一次會(huì)請(qǐng)求favicon.ico 。 不響應(yīng)此次請(qǐng)求
if (urlObj.path == '/favicon.ico') return;
// 判斷請(qǐng)求類型
if (req.method == 'GET') {
console.log(
'收到GET請(qǐng)求,請(qǐng)求路徑:',
urlObj.pathname,
'請(qǐng)求參數(shù):',
urlObj.query
);
}
//res.end的作用:
//(1)向客戶端發(fā)送內(nèi)容
//(2)結(jié)束本次響應(yīng)
res.end(
'<h1>當(dāng)前請(qǐng)求參數(shù):<span style="color:red;">' +
urlObj.query +
'</span></h1>'
);
});
// 3.啟動(dòng)服務(wù)
server.listen(8081, function () {
console.log('服務(wù)成功啟動(dòng),端口:8081');
});
第三步:使用node運(yùn)行該js文件
?
?第四步:查看本地服務(wù)器域名并訪問(wèn)服務(wù)
? 1. window+R 運(yùn)行cmd , 輸入ipconfig查看本地的ipv4地址 :
如果是插著網(wǎng)線的電腦:在? 【以太網(wǎng)適配器 以太網(wǎng)】這一欄里找到ipv4的地址??
如果是連著wifi的電腦:在? ?【無(wú)線局域網(wǎng)適配器 WLAN】這一欄里找到ipv4的地址
? 2.在地址欄輸入ipv4地址 + :8081 。 可傳參?/aaa?name=zhangsan111
頁(yè)面效果:
服務(wù)器響應(yīng):
??到這一步,你已經(jīng)成功搭建了一臺(tái)屬于自己的本地服務(wù)器,你可以把你的url地址,發(fā)給同一局域網(wǎng)下的小伙伴,讓你的小伙伴訪問(wèn)你的服務(wù)。
可能出現(xiàn)的問(wèn)題。
問(wèn)題1:頁(yè)面加載不出來(lái)。
原因:可能是你的ip地址沒(méi)有寫對(duì),也可能是ip號(hào)和端口號(hào)沒(méi)有正確組合,也可能是代碼沒(méi)保存或者node服務(wù)沒(méi)啟動(dòng),或者在cmd中輸入完命令后關(guān)閉了小黑窗
解決方案:
(1)找到正確的ipv4地址,在瀏覽器的地址欄輸入 ipv4地址+:8081?
(2)復(fù)制的js代碼一定要保存,保存完成后,在小黑窗輸入node 【你創(chuàng)建的js文件名】執(zhí)行當(dāng)前js文件,確??吹搅?strong>“服務(wù)成功啟動(dòng)”??這幾個(gè)文字
(3)cmd輸入完指令后,不要關(guān)閉!不要關(guān)閉!不要關(guān)閉! 也不要再去用鼠標(biāo)去點(diǎn)擊它,或者滑動(dòng)選取文字什么的,直接去瀏覽器查看頁(yè)面信息。
問(wèn)題2:頁(yè)面第一次加載能出來(lái),第二次刷新之后一直顯示裝圈圈。
原因:在小黑窗里面輸入完指令后,進(jìn)行了多余的操作,比如用鼠標(biāo)單擊文字,復(fù)制文字信息等,cmd會(huì)對(duì)你的這些行為做出反應(yīng),導(dǎo)致頁(yè)面一直處于加載中的狀態(tài)。
解決方案:使用Ctrl + c 結(jié)束當(dāng)前node命令,之后再次執(zhí)行該命令
問(wèn)題3:修改了js代碼后頁(yè)面信息沒(méi)有跟著改變
原因:? 這是因?yàn)橹辉诰庉嬈骼锩嫘薷牧舜a,但是沒(méi)有重新啟動(dòng)服務(wù)器,所以更新完的代碼并不會(huì)生效
解決方案:ctrl+c中止當(dāng)前cmd中的node程序,保存js代碼,重新執(zhí)行之前的命令
問(wèn)題4:為什么我的小伙伴訪問(wèn)不了我的ip
原因:可能你中止了你的node程序,或者是本地防火墻的原因,也可能你們不在同一局域網(wǎng)
解決方案:
(1)重新運(yùn)行node命令,執(zhí)行js
(2)關(guān)閉本地防火墻。點(diǎn)擊這里查看如何 關(guān)閉自己計(jì)算機(jī)的防火墻_百度搜索文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-440531.html
總結(jié):在同一局域網(wǎng)下,使用nodejs運(yùn)行js文件,保持cmd窗口的運(yùn)行,你的電腦才是一臺(tái)服務(wù)器,如果關(guān)閉cmd窗口,或者終止了node程序,那么你的電腦就不是服務(wù)器了,別人無(wú)法通過(guò)ip地址進(jìn)行訪問(wèn)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-440531.html
到了這里,關(guān)于如何快速用node在本地搭建一個(gè)服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!