express的理解

Posted snowstorm22

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了express的理解相关的知识,希望对你有一定的参考价值。

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

express安装步骤:

1.全局安装以下2个:

cnpm install express -g 和 cnpm 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

 

以上是关于express的理解的主要内容,如果未能解决你的问题,请参考以下文章

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

如何理解这段代码片段中的两对括号?

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解

html 有关如何在任何页面上插入Nuvo Express按钮的小片段。此按钮居中对齐,并在新窗口中打开目标URL。

精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!(转载)

以下代码片段 C++ 的说明