Nodejs的express使用教程
Express 是一個簡潔、靈活的 node.js Web 應用開發框架, 它提供一系列強大的特性,幫助你創建各種 Web 和移動設備應用。
1.express組織結構
app demo
??? |---node_modules------用于安裝本地模塊。
??? |---public------------用于存放用戶可以下載到的文件,比如圖片、腳本、樣式表等。
??? |---routes------------用于存放路由文件。
??? |---views-------------用于存放網頁的模板。
??? |---app.js------------應用程序的啟動腳本。
??? |---package.json------項目的配置文件。
2..創建express服務器
?| 1 2 3 4 5 6 7 8 9 10 11 | //app.js文件 var express = require('express'); var app = express(); //指定更目錄顯示的內容 app.get('/', function(req, res){ ?res.send('Hello World'); }); //指定監聽端口 var server = app.listen(3000, function() { ??console.log('Listening on port %d', server.address().port); }); |
運行nodejs應用程序
/>node app.js
3.中間件
中間件(middleware)就是處理HTTP請求的函數.
當一個HTTP請求進入服務器,服務器實例會調用第一個中間件,完成后根據設置,決定是否再調用下一個中間件.
中間件的參數為:
.四個的時候---第一個為錯誤處理,第二個為客戶請求request,第三個為服務器響應respond,第四個為next中間件. 如function(error, request, response, next){}
.三個的時候---第一個客戶請求request,第二個為服務器響應respond,第三個為next中間件. 如function(request, response, next){}
.兩個的時候---第一個客戶請求request,第二個為服務器響應respondfunction. 如function(request, response){}
4.使用中間件use
use是express調用中間件的方法,它返回一個函數.
?| 1 2 3 4 | app.use(function(request, response) { ?response.writeHead(200, { "Content-Type": "text/plain" }); ?response.end("Hello world!\n"); }); |
5.錯誤內容顯示
?| 1 2 3 4 5 6 7 | app.use(express.bodyParser());//使用body參數 app.use(express.methodOverride());//使用函數覆蓋 app.use(app.router);//使用路由 app.use(function(err, req, res, next){ ?console.error(err.stack); ?res.send(500, 'Something broke!'); });//錯誤內容顯示 |
6.路由
express路由的方式有多種,這里舉例常用的幾種:
.app.use('/', middleware);//get/post時,對于路徑/的處理
.app.get("/", middleware);//http中get時,對于路徑/的處理
.app.post("/", middleware);//http中post時,對于路徑/的處理
.app.put("/", middleware);//http中put時,對于路徑/的處理
.app.delete("/", middleware);//http中delete時,對于路徑/的處理
7.路徑通配符*
.*表示所有路徑
?| 1 2 3 | app.get("*", function(request, response) { ?response.end("404!"); });//所有路徑都返回404 |
.:捕獲路徑內容
?| 1 2 3 | app.get("/hello/:who", function(req, res) { ?res.end("Hello, " + req.params.who + "."); });//如"/hello/alice”網址,網址中的alice將被捕獲,作為req.params.who屬性的值 |
8.設置環境變量set
set用于指定變量的值.
app.set("view engine", "ejs");//使用ejs作為模版
9.response對象方法
.重定向redirect
??? response.redirect("/hello/anime");//重定向到/hello/anime
.發送文件sendFile
?? response.sendFile("/path/to/anime.mp4");
.渲染網頁模板render,即把變換的內容加載到網頁.
??? response.render("index", { message: "Hello World" });//將message變量傳入index模板,值為"Hello World"渲染成HTML網頁
10.requst對象方法
.獲取客戶ip地址:request.ip
.獲取上傳的文件:request.files
11.啟動腳本package.json
package.json用于指定app信息,nodejs版本號和其他組件的依賴關系
?| 1 2 3 4 5 6 7 8 | { ??"name": "demo", ??"description": "My First Express App", ??"version": "0.0.1", ??"dependencies": { ???"express": "3.x" ??} } |
12.app入口app.js
app.js主要包含http的創建,基本路由,監聽端口號
13.動態網頁模板views
views文件夾,用于存放所有的放網頁模板.
?| 1 2 3 4 5 6 | //app.js app.get('/', function(req, res) { ??res.render('index',{title:"最近文章"}); }); //index.js this is <%=title%>! |
14.指定靜態網頁目錄
//app.js
app.use(express.static('public'));//指定靜態網頁目錄,當瀏覽器發出非HTML文件請求時,服務器端就到public目錄尋找這個文件
轉載于:https://www.cnblogs.com/exclusiveMemory/p/6611322.html
總結
以上是生活随笔為你收集整理的Nodejs的express使用教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux nexus bulid
- 下一篇: 思考题