expresshtml
npm i express -Sexpress
let express =require('express'); let app=express(); app.get(路徑,function(req,res){ express框架新增的方法 res.send(任意類型) res.sendFile()//(文件絕對路徑) 或 (相對路徑,{root:__dirname}) res.json(json類型) res.sendStatus(404)狀態碼爲404,而且中止響應 res.status(404)狀態碼設置爲404 res.header(設置返回頭) res.render() req.path 端口後 問號前 req.query對象類型 }) app.post() app.put() app.delete() app.listen(8080,function(){})
中間件
app.use(function(req,res,next){ 瀏覽器請求先通過該函數在到達服務器 中間件的代碼位置應該在服務器返回處理之上 調用next()纔會繼續往下走 // next(如參數不爲空)則走err中間件 }) app.use(function(err,req,res,next){ })
1)session中間件
npm i express-session -S
let session=require('express-session') app.use(session({ resave:true,//每次訪問都從新保存session saveUninitialized:true,//保存未初始化的session secret:'1'//密鑰 })) 設置req.session.key=value 獲取req.session.key
2)請求體中間件
npm i body-parser -S
let bodyParser=require('body-parser') app.use(bodyParser.urlencoded({extended:true}))true則採用qs,false採用queryString app.use(bodyParser.json()) req.body返回請求體的json格式
路由
路由表文件:
let router=express.Router();
配置子路徑
router.get(子路徑,function(req,res){
})
...
module.exports=router
主文件:
let A=require(路由表文件)
app.use(主路徑,A)
靜態資源的訪問
app.use(可選子路徑,express.static(path.resolve(資源文件根目錄名)))
訪問資源文件下的文件 返回文件內容
ejs模板文件
npm i ejs -S
app.set('view engine','ejs')//設置模板引擎
app.set('views',path.resolve('目錄名'))//設置模板文件路徑
如模板引擎設置爲html則需設置app.engine('html',require('ejs').__express)
res.render('./文件名',{title:'首頁',users:[{id:1,name:'zzz'}]})
地址會自動加上設置好的路徑和後綴
模板文件demo
<ul> <% for(let i=0;i<users.length;i++){ let user=users[i]; %> <li><%= user.name %></li> <% } %> </ul> <%-msg%>
js代碼用<% %>包住npm
表達式用<%= %>json
html標籤用<%- 變量名%>瀏覽器
cookie服務器
服務器返回cookie:
express框架新增res方法
res.cookie(key,value,{
domain:,
path:,
maxAge:毫秒,
expires:,
httpOnly:boolean
})服務器返回cookie
原生方法
res.setHeader('Set-Cookie','key=value')
服務器清除cookie
res.clearCookie(key值)
瀏覽器訪問指定的域名和路徑時會自動帶上cookie
原生方法:
req.headers.cookie
express框架:let cookieParser=require('cookie-parser')指定中間件:app.use(cookieParser())req.cookies.key值