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

  • 相关阅读:
    文件IO流
    ArrayList LinkedList vector的区别
    双例集合Map,HashMap常用方法及源码分析
    单例集合List和Set
    集合与数组
    自然排序与定制排序
    String StringBuffer StringBuilder
    String与其他结构的转化
    线程的通信
    死锁,同步锁
  • 原文地址:https://www.cnblogs.com/xixiaijunjun/p/10909047.html
Copyright © 2020-2023  润新知