07-sel-express 框架快速搭建案例

<!doctype html>##07-sel-express 框架快速搭建案例

07-sel-express 框架快速搭建案例

1.服务模块

 
 
 
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);
})
 

2.路由模块

 
 
 
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;   
 

3.业务处理模块

 
 
 
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能够输出模板引擎数据,并替换文件里面的模板数据
************************************************/
 

4.配置信息模块

 
 
 
xxxxxxxxxx
 
 
 
 
//congfig.js 配置模块
module.exports = {
'port':9090
};
 

 

常用api介绍

  1. 处理请求方式及路由

    1. app.use() 在请求路由时,只要路由是由 指定url 开头的就可以了。
    2. app.get() 要完全等于该 指定路由才可以 请求到资源。

    相同请求的 url 会覆盖。可以添加 next 参数解决

    1. app.all() 1,不限定请求方法 2, 请求路径限定
    2. 正则表达式注册路由 可以由正则表达式写路由

     

  2. res.send()

    #express 里面的api。res.send();

    • 参数可以是 Buffer ,String, object, Array
    • 里面设置了很多响应报文头, 其中就包括 Content-Type:text/html;charset=utf-8;

    #nodejs 里面的 res.end()

    • 参数只能 Buffer 对象或者 字符串
    • 要手动设置响应头

     

  3. res.sendFile() 和 res.render()

    1. res.sendFile(): 读取对应文件,并响应文件
    2. es.render() 能够读取文件并相应, 并且参数2能够输出模板引擎数据,并替换文件里面的模板数据

     

  4. 处理静态资源

    /*-----------------------------------------------------

    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')));

     

 

 

 

 

 

posted @ 2019-05-22 22:38  莫子诗里  阅读(217)  评论(0编辑  收藏  举报