Express
基于 Node.js 平臺配阵,快速甚侣、開放跨跨、極簡的 Web 開發(fā)框架 掏秩。
Hello World
const express = require('express');
const app = express();
app.get('/', function(req, res) {
res.send('hello world');
});
app.listen(3000, () => {
console.log('服務(wù)啟動成功锐朴! http://localhost:3000');
});
Request
Express 幫我們在 request 對象上兴喂,做了一些封裝,新增了如下一些常用屬性or方法
- req.query:獲取URL的查詢參數(shù)串
- req.body: 獲取請求主體(post數(shù)據(jù)焚志,需要設(shè)置中間件函數(shù) json與urlencode)
- req.cookies:獲取Cookies (需要使用 cookie-parser 中間件)
- req.hostname / req.ip:獲取主機(jī)名和IP地址
- req.params:獲取路由的parameters
- req.path:獲取請求路徑
- req.protocol:獲取協(xié)議類型
- req.get():獲取指定的HTTP請求頭
Response
Express 幫我們在 response 對象上衣迷,做了一些封裝,新增了如下一些常用屬性or方法
- res.set():設(shè)置HTTP頭酱酬,傳入object可以一次設(shè)置多個頭
- res.status():設(shè)置HTTP狀態(tài)碼
- res.send():傳送HTTP響應(yīng)
- res.redirect():設(shè)置響應(yīng)的Location HTTP頭壶谒,并且設(shè)置狀態(tài)碼302
- res.json():傳送JSON響應(yīng)
- res.cookie(name,value [膳沽,option]):設(shè)置Cookie
- res.clearCookie():清除Cookie
- res.download():傳送指定路徑的文件
- res.sendFile(path [汗菜,options] [,fn]):傳送指定路徑的文件 -會自動根據(jù)文件extension設(shè)定Content-Type
- res.render(view [, locals] [, callback]) 渲染一個view
路由
靜態(tài)資源文件托管
express.static()
生成器 (腳手架工具)
// 全局安裝
npm install express-generator -g
// 生成項(xiàng)目
express --view=ejs myapp
EJS 模板引擎
官網(wǎng) - https://ejs.bootcss.com/
"E" 代表 "effective"挑社,即【高效】陨界。EJS 是一套簡單的模板語言,幫你利用普通的 JavaScript 代碼生成 HTML 頁面痛阻。EJS 沒有如何組織內(nèi)容的教條菌瘪;也沒有再造一套迭代和控制流語法;有的只是普通的 JavaScript 代碼而已录平。
EJS 模板引擎 - 常用標(biāo)簽
- <% %> 流程控制標(biāo)簽
- <%= %> 輸出標(biāo)簽 (會對 HTML 代碼轉(zhuǎn)義)
- <%- %> 輸出標(biāo)簽 (不對 HTML 代碼轉(zhuǎn)義)
- <%# %> 注釋標(biāo)簽
- <%% 會輸出 '<%'
include 包含
<ul>
<% users.forEach(function(user){ %>
<%- include('user/show', {user: user}); %>
<% }); %>
</ul>