先最簡單的程式碼
安裝 npm install express
app.js 程式碼內容
const express = require(`express`) const app = express() //單項流動 const mid1 = () => (req, res, next) => { res.body = `請求1<br/>` next() } const mid2 = () => (req, res, next) => { res.body += `請求2<br/>` next() } app.use(mid1()) app.use(mid2()) app.get(`/`, (req,res,next) => { res.send(res.body +`業務處理中`) }) app.listen(2334)
開啟 localhost:2334埠可以看到
在上一個豐富點的程式碼,包含 swig模版引擎,靜態資源載入,mongoose使用
var express = require(`express`); //引入express var swig = require(`swig`); //引入swig模版引擎 同類的還有ejs bug var mongoose = require(`mongoose`); // 引入資料庫 mongoose 需預先安裝資料庫 //載入 bodeyparser var bodyParser = require(`body-parser`); // 引入 body-parser 中間鍵 var Cookies = require(`cookies`); // 引入cookies var app =express(); // 例項化 express var User = require(`./models/User`); //設定靜態檔案託管 app.use(`/public`,express.static(__dirname + `/public`)); // app.use 載入中間鍵 //載入模板模組 app.engine(`html`,swig.renderFile) //設定模板目錄第一個引數固定 app.set(`views`,`./views`); // 註冊所有使用模板引擎 第一個引數必須是view engine app.set(`view engine`,`html`); swig.setDefaults({cache: false}); // 預設快取靜態頁面 false方便除錯 app.use(bodyParser.urlencoded({extended: true})); app.use(function(req,res,next){ req.cookies = new Cookies(req,res); //解析登入使用者的cookie資訊 req.userInfo ={}; if(req.cookies.get(`userInfo`)){ try{ req.userInfo = JSON.parse(req.cookies.get(`userInfo`)); //獲取當前登入使用者型別 運算元據方法 User.findById(req.userInfo._id).then(function(userInfo){ req.userInfo.isAdmin = Boolean(userInfo.isAdmin); next(); //next() 指引前往下一步 }) }catch(e){ next(); } }else{ next(); } }); //劃分路由到不同的資料夾 app.use(`/admin`,require(`./routers/admin`)); app.use(`/api`,require(`./routers/api`)); app.use(`/`,require(`./routers/main`)); // MONGOOSE 連結資料庫 mongoose.connect(`mongodb://localhost:27017/test`,function(err){ if(err){ console.log("資料庫連結失敗"); }else{ console.log("資料庫連結成功"); app.listen(8081); } });
我在上面程式碼中做了詳細的注寫,還會詳細完善
github地址:https://github.com/xiaoyanbin/bolg
一個完整的node.js +mongoose + express 實現的程式碼