使用Node.js怎么創建一個Express服務?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
1、創建一個HttpServer服務端
在node.js官網下載好node的Windows版本后一路下一步安裝好了node,新建一個server.js文件,開始第一個node文件。首先在文件開頭需要使用require包含所需要的模塊,然后利用http.createServer創建一個server,并執行回調函數。在回調函數內對請求req進行處理,并返回res結果。
利用url的parse方法將req請求中的url轉換為json后,得到其中的請求文件名pathname。然后利用fs的readFile方法讀取文件,在回掉函數中進行錯誤判斷并設定文件頭的狀態碼以及"Content-Type",之后將文件寫入res返回。最后記得在createServer的回掉方法內結束res.end();
在文件最后調用server.listen();一直監聽localhost的3000端口。
啟動node服務,在文件夾內通過控制臺輸入:node server.js。打開瀏覽器的localhost:3000/index.html,通過server.js訪問index.html頁面內容。
const http=require('http'); const url=require('url'); const fs=require('fs'); //1、創建server let server=http.createServer((req,res)=>{ //2、獲取網頁請求的文件路徑 let pathname=url.parse(req.url).pathname; //3、利用fs讀取文件 fs.readFile(pathname.substring(1),function (err,data) { if (err){ //有錯誤err,文件未找到,返回狀態404 res.writeHead(404,{ "Content-Type":"text/html" }); }else{ //否則正常,設定返回狀態為200 res.writeHead(200,{ "Content-Type":"text/html" }); res.write(data.toString()); //將找到的文件寫入返回 } res.end(); //在函數readFile()內關閉鏈接 }); }); //4、讓server一直監聽localhost的3000端口的請求 server.listen(3000,'localhost');
Node作為服務器有時候還需要請求其他服務器的數據,此時node就成了“客戶端”了,通過HTTP的get方法可以對指定的網址接口進行api調用、數據請求,例如:
const http=require('http'); //利用HTTP請求第三方接口服務 http.get('http://www.imooc.com/u/card',(res)=>{ let data=''; res.on('data',(temp)=>{ //檢測到數據,追加到data中 data+=temp; }); res.on('end',()=>{ //檢測到數據傳輸結束,控制臺輸出數據 console.log(data); }); });
在get的回調函數中對res進行處理,如果有數據傳輸on('data'),則將temp追加到data,如果傳輸完成on('end'),則進行相關處理。
Node安裝之后自帶npm軟件包管理工具,通過npm命令可以獲取npm平臺上的插件、軟件,由于被墻,國內可以使用淘寶鏡像進行安裝,通過以下命令設置,就可以使用cnpm代替npm了。
npm install -g cnpm --registry=https://registry.npm.taobao.org
通過cnpm全局安裝express框架:
cnpm install -g express-generator
安裝完成后可以通過express --version
來查看express版本。
通過express命令來初始化一個服務框架:express server,之后就可以看到生成了一個server文件夾。
其中bin/www.js用于創建一個HTTP的服務器并且啟動、監聽某個端口,一般不用修改。public文件夾用于存放img、js、css等靜態文件,routes文件夾存放路由js文件。view中存放視圖文件,默認提供的是用jade類型文件。app.js文件中設置視圖及通過app.use()調用相關模塊。例如:
//app.js文件內指定根目錄 var index = require('./routes/index'); app.use('/', index); //index.js文件內渲染index頁面 router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); });
首先在app.js內將網站的根目錄指定為routes下的index.js文件,在index.js中調用router.get方法請求view下的視圖文件,在回調函數render中渲染index.jade界面,從而當你在瀏覽器輸入localhost:3000時會默認顯示view/index.jade頁面。
express官方提供.jade文件作為網頁默認視圖,因此如果需要使用html則需要進行配置:
首先通過cnpm install ejs --save
安裝ejs插件,然后在app.js文件中view engine setup下進行配置引擎:
之后在views文件夾下刪除原有.jade文件,新建你想要展示的index.html文件即可。例如:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>express index</title> </head> <body> <h2>Express</h2> <p>Welcome use express in HTML</p> </body> </html>
3、啟動Express,在server所在文件夾下執行命令:node bin/www,在瀏覽器localhost:3000顯示為:
關于使用Node.js怎么創建一個Express服務問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。