天天看點

node - express中路由分拆、請求體中間件body-parser、靜态檔案中間件

server.js

let express = require('express');
let app = express();
app.listen(9099,()=>{
    console.log('啟動伺服器');
});
//中間件實作對請求體的處理(post方式等)
//4.7.2版本的express沒有了bodyParser方法,需要另外安裝body-parser模闆:于是另外安裝了body-parser模闆1.5.2版本
let bodyParser = require('body-parser');
//解析表單格式 把表單内的資料 解析後放在req.body上
app.use(bodyParser.urlencoded({extended:false}));
//解析json格式 把json字元串轉化成對象 解析後放在req.body上
app.use(bodyParser.json());
//靜态檔案中間件 express.static
//app.use(express.static('static'));  //靜态檔案引入方式 /css/result.css
app.use('/static',express.static('static'));  // 靜态檔案引入方式 ../static/css/result.css
//告訴頁面上所有render方法中的html 都用ejs模闆來渲染
app.engine('html',require('ejs').__express);
//用于更改模闆路徑,預設views
//app.set('views','static');
//配置預設字尾名
app.set('view engine','html')
//服務端路由的實作
//引入使用者路由
let user = require('./router/user')
//通過中間件注冊路由
app.use('/user',user);//浏覽器通路路徑 localhost:3940/user/user
//引入文章路由
let article = require('./router/article')
app.use('/article',article)
           

user.js

let express = require('express');
//實列伺服器路由
let router = express.Router();
let path = require('path');
router.get('/login',(req, res)=>{
    res.send('登入');
    res.redirect('http://www.baidu.com')//用于重定向
});
router.get('/register',(req, res)=>{
    //path.reslove是根據運作檔案來判斷路徑的即server.js
    //res.sendFile(path.resolve('../views/reg.html'))
    console.log(path.resolve('../views/reg.html'));
    //根據目前檔案來判斷路徑
    res.sendFile(path.join(__dirname,'../views/reg.html'));
    console.log(path.join(__dirname, '../views/reg.html'));
});

router.post('/reg',(req,res)=>{
    //擷取經過body-parser處理的請求體(req.body)發送過來的資料
    console.log(req.body);
    res.render('result',{username:'間隔非'})
})
module.exports = router;