Express:基於node.js的後端框架。介紹javascript
使用步驟: 1.mkdir app
, cd app
2. npm init
3. npm i express -s
4. hello worldcss
var express = require('express');//引入exrpess
var app = express();//建立實例
//路由。當url匹配這裏的路由,就交由後面的函數處理
app.get('/', function (req, res) {
res.send('Hello World!');
});
//建立server
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
複製代碼
咋看上去跟使用node.js建立一個靜態server有點像呢?emm由於express是基於node.js平臺。 上面本質上其實就是建立了一個本地server,監聽3000端口。server獲取的url的後綴,進行路由匹配,而後交給對應的函數進行處理。html
上面的服務器看上去好像很單薄呀,若是我要實現登陸註冊等等豈不是要本身寫一大堆? Express應用生成器(express-generator)瞭解一下java
npm i express-generator -s
介紹Usage: express [options] [dir]
express --ejs .
(在當前目錄下,建立腳手架,選擇模板爲.ejs)[圖片上傳失敗...(image-568d2c-1525946563984)] 這時候咱們的目錄下新增不少文件,檢查一下package.json,發現咱們新依賴了不少東西,先安裝好各類依賴。npm i
node
node bin/www
,默認端口是3000,若是你想修改端口的話能夠在命令前面指定端口PORT=XXXX
xxx.com/css/style.css
的時候,剛好咱們的public目錄下有css文件夾,裏面存放着style.css。服務器就會返回這個文件)這裏咱們參考一下中文文檔express
中間件函數可以訪問請求對象 (req)、響應對象 (res) 以及應用程序的請求/響應循環中的下一個中間件函數。下一個中間件函數一般由名爲 next 的變量來表示。npm
中間件函數能夠執行如下任務:json
若是當前中間件函數沒有結束請求/響應循環,那麼它必須調用 next(),以將控制權傳遞給下一個中間件函數。不然,請求將保持掛起狀態。後端
next
,這是是中間件的回電函數,若是他帶有參數,則表示拋出一個錯誤,參數爲錯誤的文本,例如:
function Middleware(request, response, next) {
next('出錯了!');
}
複製代碼
拋出錯誤之後,後面的中間件將再也不執行,直到發現一個錯誤處理函數爲止。若是沒有調用next方法,後面註冊的函數也是不會執行的。服務器
咱們在一開始利用express-generator生成框架的時候,輸入了ejs
,這個ejs
就是我指定了的模板引擎。經過模板引擎,咱們再也不把html裏面的內容寫死,而是經過router動態地把數據傳給模板引擎,讓它根據咱們傳入的數據動態地渲染頁面,甚至咱們能夠經過判斷語句來給不一樣的登陸狀態的用戶渲染頁面,經過循環語句給頁面添加內容等等,上面的router圖片中的
res.render('index', {title: 'Express'})
複製代碼
就是咱們給模板引擎傳給參數,選擇index模板,傳入一個對象,key爲title,value是一個字符串。而後咱們只須要在views
中的index.ejs
裏面,使用相應的語法便可動態渲染。