node.js,express入門看詳細篇

科比net發表於2018-05-11

先最簡單的程式碼

安裝 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 實現的程式碼 

 

相關文章