• nodejs的express框架


    介绍:

    Express是由路由和中间件构成一个的nodejs的一种web应用框架;

    功能:

    • 可以设置中间件来响应 HTTP 请求。

    • 定义了路由表用于执行不同的 HTTP 请求动作。

    • 可以通过向模板传递参数来动态渲染 HTML 页面。

    中间件的功能包括:

    • 执行任何代码。
    • 修改请求和响应对象。
    • 终结请求-响应循环。
    • 调用堆栈中的下一个中间件。

    Express 应用可使用如下几种中间件:

    使用例子:

    一.如何设置中间件来响应http请求:

    1.创建一个 Express 应用。

    express() 是一个由 express 模块导出的入口(top-level)函数。

    var express = require('express');
    var app = express();//其中app就是一个应用级中间件对象
    // 路由和句柄函数(中间件系统),处理指向 /user/:id 的 GET 请求
    app.get('/user/:id', function (req, res, next) {
        res.send('USER');//传送HTTP响应
      /*第一个参数:表示模板的文件,相对于views目录 view/index.html
      第二个参数:传递给模板使用的数据
      */
      res.render('','');//响应页面
    });
    二.应用静态文件(js/css文件)
    express.static 是 Express 内置的唯一一个中间件。是基于 serve-static 开发的,负责托管 Express 应用内的静态资源。

    eg:
    app.use('/public',express.static(__dirname+'/public'));
    三.定义路由表执行不同的http请求
    app.use('/api',require('./routers/api'));

    eg:api.js文件
    var express=require('express');
    var router =express.Router();

    router.get('/user',function (req,res,next) {
    res.send('api');
    });
    /**
    用户注册
    */
    router.post('/user/register',function (req,res,next) {

    //处理不同业务逻辑

    });

    module.exports=router;
    四.使用模板引擎;

    eg:
    /配置应用模板
    //1.定义模板引擎,使用swig.renderFile方法解析后缀名为html文件 ;engine引擎
    app.engine('html',swig.renderFile);
    //engine('模板引擎名称,同时也是模板文件后缀名',解析处理模板内容的方法);
    //2.html文件 设置模板文件存放的目录
    app.set('views','./views');
    //app.set('views','目录')
    //注册模板引擎
    app.set('view engine','html');
    //app.set('view engine','必须和app.engine方法的第一个参数一致');
    swig.setDefaults({cache:false});
     eg:这种方法没用过
    var fs = require('fs'); // 此模板引擎依赖 fs 模块
    app.engine('ntl', function (filePath, options, callback) { // 定义模板引擎
      fs.readFile(filePath, function (err, content) {
        if (err) return callback(new Error(err));
        // 这是一个功能极其简单的模板引擎
        var rendered = content.toString().replace('#title#', '<title>'+ options.title +'</title>')
        .replace('#message#', '<h1>'+ options.message +'</h1>');
        return callback(null, rendered);
      })
    });
    app.set('views', './views'); // 指定视图所在的位置
    app.set('view engine', 'ntl'); // 注册模板引擎
     

     






  • 相关阅读:
    12.3
    团队项目第一阶段冲刺第一天
    4.22
    4.21 re重要功能
    12.1
    12.2
    4.17
    4.16
    css设置子元素相对于父元素保持位置不变(含有滚动条的父元素)
    git操作和npm操作清单
  • 原文地址:https://www.cnblogs.com/fangyinghua/p/7659964.html
Copyright © 2020-2023  润新知