node.js三個(gè)步驟實(shí)現(xiàn)一個(gè)服務(wù)器及Express包使用
用http 模塊寫一個(gè)簡(jiǎn)單的web服務(wù)器
第一步:新建一個(gè)文件,名為 d:/src/http.js
( 文件名及路徑名可以自行設(shè)置,建議均不使用中文字符), 內(nèi)容如下
// 1. 引入http模塊 const http = require('http'); // 2. 創(chuàng)建服務(wù) const server = http.createServer(function(req, res) { //輸入請(qǐng)求頭后end才可以返回中文,不然會(huì)亂碼 res.setHeader('content-type', 'text/html;charset=utf8') // 向客戶端發(fā)送內(nèi)容,并結(jié)束本次響應(yīng) res.end('I wanted to see how far I could go'); }); // 3. 啟動(dòng)服務(wù) server.listen(8081, function() { console.log('服務(wù)器啟動(dòng)成功,請(qǐng)?jiān)趆ttp://localhost:8081中訪問....'); });
第二步:運(yùn)行js代碼,啟動(dòng)服務(wù)。
在小黑窗中進(jìn)入到01http.js所在的目錄,鍵入命令 node 01http.js
,此時(shí)會(huì)彈出一個(gè)小黑窗,不要關(guān)。
第三步:測(cè)試功能
打開一個(gè)瀏覽器頁面,輸入地址:http://localhost:8081
,觀察效果:
- 瀏覽器中的效果
- 小黑窗中的效果
停止服務(wù):ctrl + c
注意:
- 小黑窗不要關(guān),它就是服務(wù)器
- 服務(wù)器本身不會(huì)有主動(dòng)行為(小黑窗看起來沒有任何變化),它在時(shí)刻等待客戶端的訪問
- 不要用鼠標(biāo)選中小黑窗的內(nèi)容,會(huì)導(dǎo)致程序假死
- 修改代碼后要重啟
- 更改res.end()的內(nèi)容,
重啟
后,再次觀察。 - 重啟服務(wù):就是重新運(yùn)行程序(按下向上的箭頭,再回車)。
- 更改res.end()的內(nèi)容,
代碼用圖表示:
常見的幾種文件類型及content-type
- .html:
res.setHeader('content-type', 'text/html;charset=utf8')
- .css:
res.setHeader('content-type', 'text/css;charset=utf8')
- .js:
res.setHeader('content-type', 'application/javascript')
- .png:
res.setHeader('content-type', 'image/png')
- json數(shù)據(jù):
res.setHeader('content-type', 'application/json;charset=utf-8')
其它類型,參考這里
Express基本介紹
Express 是一個(gè)基于 Node.js 平臺(tái),快速、開放、極簡(jiǎn)的 web 開發(fā)框架。
- 框架:是一個(gè)半成品,用來快速解決一類問題;庫(kù)就是工具集,使用非常靈活) (框架有:bootstrap, lay-ui, express, vue, react ; 庫(kù):zepto.js , jQuery, day.js, underscore, lodash, art-template, axios, echart.....)
- web 開發(fā): 對(duì)不同的請(qǐng)求能夠顯示頁面;提供接口服務(wù);
理解:
- 我們前面用http模塊來支持web服務(wù),現(xiàn)在要用express來寫web服務(wù)
- 對(duì)于node.js來說,Express 是一個(gè)第三方模塊,有豐富的 API 支持,強(qiáng)大而靈活的中間件特性
Express使用
- 創(chuàng)建一個(gè)全新的文件夾,假設(shè)名字為 new-express(目錄名不要有漢字,也不要某個(gè)包的名字),在此目錄下運(yùn)行
npm init -y
命令來生成package.json文件 - 與安裝其他的第三方包一致,本地安裝
npm i express
- 在項(xiàng)目根目錄下新建一個(gè)js文件,例如app.js,其中輸入代碼如下:
// 0. 加載 Express const express = require('express') // 1. 調(diào)用 express() 得到一個(gè) app const app = express() //靜態(tài)資源委托 app.use(express.static('public')) // 3. 監(jiān)聽端口號(hào),啟動(dòng) Web 服務(wù) app.listen(3000, () => console.log('app listening on port 3000!'))
public是我自己創(chuàng)建的一個(gè)文件夾,什么html,js,css,img之類的可以全丟里面.運(yùn)行的時(shí)候需要資源會(huì)自動(dòng)去public文件夾里翻找.具體使用請(qǐng)查文檔吧
到此這篇關(guān)于node.js三個(gè)步驟實(shí)現(xiàn)一個(gè)服務(wù)器及Express包使用的文章就介紹到這了,更多相關(guān)node.js服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Nodejs利用socket.io實(shí)現(xiàn)多人聊天室
這篇文章講述了websocket無到有,根據(jù)協(xié)議,分析數(shù)據(jù)幀的頭,進(jìn)行構(gòu)建websocket。雖然代碼短,但可以很好地體現(xiàn)websocket的原理。對(duì)nodejs利用socket 實(shí)現(xiàn)多人聊天室功能感興趣的朋友一起看看吧2017-02-02從零開始學(xué)習(xí)Node.js系列教程之設(shè)置HTTP頭的方法示例
這篇文章主要介紹了Node.js設(shè)置HTTP頭的方法,詳細(xì)分析了常見HTTP頭的功能、原理及相關(guān)設(shè)置操作技巧,需要的朋友可以參考下2017-04-04在node中使用jwt簽發(fā)與驗(yàn)證token的方法
這篇文章主要介紹了在node中使用jwt簽發(fā)與驗(yàn)證token的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04nodejs使用readline逐行讀取和寫入文件的實(shí)現(xiàn)
這篇文章給大家介紹了nodejs使用readline逐行讀取和寫入文件的實(shí)現(xiàn)方法,文中通過代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01詳解Puppeteer前端自動(dòng)化測(cè)試實(shí)踐
這篇文章主要介紹了詳解Puppeteer前端自動(dòng)化測(cè)試實(shí)踐,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識(shí))
這篇文章主要介紹了總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識(shí)),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07