• 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
  • 相关阅读:
    Atitit 理解Monad attilax总结Atiti
    Atitit sql执行计划
    Atitit 深入了解UUID含义是通用唯一识别码 (Universally Unique Identifier),
    atitit..代码生成流程图 流程图绘制解决方案 java  c#.net  php v2
    Atitit 项目培训与学校的一些思路总结
    Atitit 项目的主体设计与结构文档 v3
    Atitit  数据存储的分组聚合 groupby的实现attilax总结
    Atitit 数据存储的数据表连接attilax总结
    Atitit图像识别的常用特征大总结attilax大总结
    Atitit 项目中的勋章体系,,mvp建设 ,荣典体系建设
  • 原文地址:https://www.cnblogs.com/snowstorm22/p/10257166.html
Copyright © 2020-2023  润新知