zoukankan      html  css  js  c++  java
  • expressexpress的理解

    express:基于node.js的前端开发框架,能快速地搭建一个项目的骨架。核心是对http模块的再包装。是一个自身功能极简单,完全由路由和中间件构成的web开发框架,从本质上说,一个express应用是在调用各种中间件。

    express安装步骤:

    1.全局安装以下2个:

    npm install express -g 和 npm install express-generator -g

    2.推荐使用ejs模板,新建一个空白项目文件夹,在项目根目录express -e

    3.安装依赖 cnpm install 

    express中间件是一个可访问请求对象(req)和响应对象(res)的函数,在 Express 应用的请求-响应循环里,下一个内联的中间件通常用变量 next 表示。

    中间件的功能包括:执行任何代码;修改请求和响应对象;终结请求-响应循环;调用堆栈中的下一个中间件。注意:当前中间件没有终结请求-响应循环时必须调用 next() 方法进入到下一个中间件,否则请求就会挂起。

    express中间件的分类

    (1)内置中间件express.static 唯一的内置中间件,它基于 serve-static,负责在 Express 应用中提供静态资源。(__dirname代表当前文件夹的路径)

    app.use(express.static(path.join(__dirname, 'public')));

    (2)应用级中间件:绑定到 express 实例,使用 app.use()  app.VERB() 。 

    // 没有挂载路径的中间件,应用的每个请求都会执行该中间件
    app.use(function (req, res, next) {
        console.log('Time:', Date.now());
        next();
    });
    // 挂载至 /user/:id 的中间件,任何指向 /user/:id 的请求都会执行它
    app.use('/user/:id', function (req, res, next) {
        console.log('Request Type:', req.method);
        next();
    });
    // 路由和句柄函数(中间件系统),处理指向 /user/:id 的 GET 请求
    app.get('/user/:id', function (req, res, next){
        res.send('USER');
    });

    (3)路由级中间件:和应用级中间件一样,只是它绑定的对象为 express.Router()。使用 router.use()  router.VERB() 加载。

    app.use('/', indexRouter);
    app.use('/users', usersRouter);

    (4)错误处理中间件:有 4 个参数(err, req, res, next),定义错误处理中间件时必须使用这 4 个参数。

    app.use(function(err, req, res, next){
        res.locals.message = err.message;
        res.locals.error = req.app.get('env') === 'development' ? err : {};
        res.status(err.status || 500);
        res.render('error');
    });

    (5)第三方中间件:通过第三方中间件来添加,需要安装所需功能的 node 模块。

    var cookieParser = require('cookie-parser');
    app.use(cookieParser());

    next()由于node异步的原因,需要提供一种机制,当当前中间件工作完成之后,通知下一个中间件执行,因此使用next()方法进入下一个中间件。

    app.use(function(req, res, next) {
        next(createError(404));
    });

    参考链接地址:

    https://blog.csdn.net/u011413061/article/details/50518069
  • 相关阅读:
    Linux安装oracle 10g常见问题之——ORA-01078,LRM-00109,ORA-01102
    Linux安装oracle 10g常见问题之——OUI-25031
    C#中static静态变量的用法
    让DIV中的内容水平和垂直居中
    json对象与json字符串互换
    AJAX请求 $.post方法的使用
    .NET(c#)new关键字的三种用法
    创建数据库和表的SQL语句
    SQL、LINQ、Lambda 三种用法(转)
    AJAX中UPDATEPANEL配合TIMER控件实现局部无刷新
  • 原文地址:https://www.cnblogs.com/snowstorm22/p/10257166.html
Copyright © 2011-2022 走看看