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