<!doctype html>##07-sel-express 框架快速搭建案例html
xxxxxxxxxx
// app.js:啓動服務模塊
let express = require('express');
let config = require('./config.js');
let router = require('./router.js');
//2,建立app對象
let app = express();
console.log(router.toString());
//3,註冊路由
//放在路由模塊中
//設置app 與 router 相關聯
app.use('/',router);
//4,啓動服務
app.listen(config.port, ()=>{
console.log('http://localhost:'+ config.port);
})
xxxxxxxxxx
//router.js 路由模塊
/*---------------------------------
1,建立一個
router 對象(router 對象既是對象,也是函數)
2,經過 router 對象掛載路由
3,返回 router 對象
-------------------------------------*/
let express = require('express');
let path = require('path');
let handler = require('./handler.js');
let router = express.Router();
//2, 經過 router 對象掛載路由
router.get('/',handler.index);
router.get('/index',handler.index);
router.get('/submit',(req,res)=>{
});
router.get('/item',(req,res)=>{
});
router.get('/add',(req,res)=>{
});
router.post('/add',(req,res)=>{
});
/*-----------------------------------------------------
express.static(root,[options])
1,該root參數指定從中提供靜態資產的根目錄。
該函數經過req.url與提供的root目錄組合來肯定要提供的文件
2,對 resouces 裏面的靜態資源請求
router.use('/resouces' 這請求的是虛擬路徑。並非 req.url 的部分
------------------------------------------------------------------*/
router.use('/resouces',express.static(path.join(__dirname,'resouces')));
// 3,返回 router 對象
module.exports = router;
xxxxxxxxxx
//業務模塊
//處理新聞列表
let path = require('path');
module.exports.index =(req,res)=>{
res.sendFile(path.join(__dirname,
'views','index1.html'));
};
// {}.index = function(req,res) {
// res.sendFile(path.join(__dirname,
// 'views','index1.html'));
// }
/********************************************
res.sendFile():
讀取對應文件,並響應文件
res.render()
可以讀取文件並相應,
而且參數2可以輸出模板引擎數據,並替換文件裏面的模板數據
************************************************/
xxxxxxxxxx
//congfig.js 配置模塊
module.exports = {
'port':9090
};
處理請求方式及路由node
- app.use() 在請求路由時,只要路由是由 指定url 開頭的就能夠了。
- app.get() 要徹底等於該 指定路由才能夠 請求到資源。
相同請求的 url 會覆蓋。能夠添加 next 參數解決web
- app.all() 1,不限定請求方法 2, 請求路徑限定
- 正則表達式註冊路由 能夠由正則表達式寫路由
res.send()正則表達式
#express 裏面的api。res.send();express
- 參數能夠是 Buffer ,String, object, Array
- 裏面設置了不少響應報文頭, 其中就包括 Content-Type:text/html;charset=utf-8;
#nodejs 裏面的 res.end()windows
- 參數只能 Buffer 對象或者 字符串
- 要手動設置響應頭
res.sendFile() 和 res.render()api
- res.sendFile(): 讀取對應文件,並響應文件
- es.render() 可以讀取文件並相應, 而且參數2可以輸出模板引擎數據,並替換文件裏面的模板數據
處理靜態資源app
/*-----------------------------------------------------框架
express.static(root,[options]) 1,該root參數指定從中提供靜態資產的根目錄。 該函數經過req.url與提供的root目錄組合來肯定要提供的文件less
2,對 resouces 裏面的靜態資源請求 router.use('/resouces' 這請求的是虛擬路徑。並非 req.url 的部分
------------------------------------------------------------------*/
router.use('/resouces',express.static(path.join(__dirname,'resouces')));