![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
express
文章平均质量分 64
express源码分析
crayon-shin-chan
这个作者很懒,什么都没留下…
展开
-
express身份验证中间件passport入门
地址:https://github.com/jaredhanson/passport1.简介Passport是Node.js的Express兼容身份验证中间件。Passport的唯一目的是对请求进行身份验证,它通过一组称为策略的可扩展插件来完成。Passport不会挂载路由或采用任何特定的数据库架构,这可以最大程度地提高灵活性并允许开发人员做出应用程序级决策。该API很简单:您向Passport提供身份验证请求,Passport提供钩子来控制身份验证成功或失败时发生的情况。...原创 2021-02-03 15:38:53 · 413 阅读 · 0 评论 -
express安全响应头中间件helmet
地址:https://github.com/helmetjs/helmet1.简介helmet可通过设置各种HTTP标头来帮助您保护Express应用程序。这不是灵丹妙药,但可以帮上忙!2.快速入门首先,运行npm install helmet --save您的应用程序。然后,在Express应用中:const express = require("express");const helmet = require("helmet");const app ...原创 2021-02-03 15:27:31 · 533 阅读 · 1 评论 -
express-validator入门
1.简介express-validator是一组express.js中间件,其中包装了validateator.js验证器和消毒器功能。2.安装使用npm安装它(确保您具有Node.js 8或更高版本):npm install --save express-validator3.基础指南让我们开始写一条基本的路线来在数据库中创建用户:const express = require('express');const app = expr...翻译 2021-02-03 15:22:11 · 1015 阅读 · 0 评论 -
express会话中间件express-session
地址:https://github.com/expressjs/session1.安装这是通过npm注册表提供的Node.js模块。使用以下命令完成安装:npm install$ npm install express-session2.API2.1 session(options)使用给定的options创建会话中间件。var session = require('express-session')注意:会话数据不会保存在cooki...原创 2021-02-03 15:07:54 · 245 阅读 · 0 评论 -
express上下文中间件express-http-context
地址:https://github.com/skonves/express-http-context1.简介在任何地方获取并设置请求范围的上下文。这只是cls-hooked(由continuation-local-storage派生)的不受限制的,惯用的ExpressJS实现。这是存储用户状态,JWT声明,请求/关联ID以及任何其他请求范围数据的好地方。即使在async/await时(在Node 8+中),上下文也得以保留。2.安装npm install --s...原创 2021-02-03 14:26:08 · 981 阅读 · 0 评论 -
express入门之compression压缩中间件
1.简介https://github.com/expressjs/compressioncompression压缩中间件可以提供express请求压缩功能,支持以下编码:deflate gzip2.使用一般的使用方式是:var compression = require('compression')app.use(compression([options]))下面是一个简单示例:var compression = require('comp...原创 2020-11-18 23:24:20 · 1544 阅读 · 0 评论 -
express入门之托管静态文件
1.简介为了提供诸如图像、CSS 文件和 JavaScript 文件之类的静态文件,请使用 Express 中的express.static内置中间件函数。此函数特征如下:express.static(root, [options])root参数指定从中提供静态资产的根目录。 有关options参数的更多信息,请参见express.static。例如,通过如下代码就可以将public目录下的图片、CSS 文件、JavaScript 文件对外开放访问了:a...原创 2020-11-17 23:41:00 · 291 阅读 · 0 评论 -
express入门之路由
1.简介路由是指应用程序的端点(URI)如何响应客户端请求。您可以使用Express应用程序对象的与HTTP方法相对应的方法来定义路由。例如,app.get()处理GET请求,而app.post处理POST请求。有关完整列表,请参阅app.METHOD。您还可以使用app.all()处理所有HTTP方法,并使用app.use()将中间件指定为回调函数。这些路由方法指定在应用程序收到对指定路由(端点)和HTTP方法的请求时调用的回调函数(有时称为“处理函数”)。...原创 2020-11-17 23:15:41 · 202 阅读 · 0 评论 -
express入门之应用程序生成器express-generator
1.安装npm install -g express-generator2.调用首先你需要创建一个应用目录如app,安装express-generator,然后在目录下通过npx直接调用安装在node_modules下的命令:npx express-generatorcd appnpx express-generatornpx: installed 10 in 2.855s warning: the default view engine wil...原创 2020-11-17 21:23:03 · 842 阅读 · 0 评论 -
express入门之HelloWord!
下面是一个你可以创建的最简单的express程序:const express = require('express')const app = express()const port = 3000app.get('/', (req, res) => res.send('Hello World!'))app.listen(port, () => console.log(`Example app listening on port ${port}!`))此应用程序启动服务器...原创 2020-11-17 21:11:13 · 189 阅读 · 0 评论 -
express内部Layer结构
app.jsvar app = express();// view engine setupapp.set('views', path.join(__dirname, 'views'));app.set('view engine', 'jade');app.use(logger('dev'));app.use(bodyParser.json());app.use(bodyPar原创 2018-02-07 00:23:16 · 355 阅读 · 0 评论 -
express之layer.js
lib/router/layer.jsmodule.exports = Layer;//Layer构造函数,一个Layer可以属于router,也可以属于Route//当调用router的route方法时,Layer作为Route对象的中间层,它的path与创建的Route的path一样,它的handle为Route的dispatch方法//当调用router的use方法时,Layer的原创 2018-02-07 00:00:13 · 337 阅读 · 0 评论 -
express之express.js
lib/express.js//require('express')本身就是一个函数exports = module.exports = createApplication;function createApplication() { //express实例本身就是一个处理函数,所以可以传递给createHttpServer方法 var app = function(req, r原创 2018-02-03 12:14:36 · 172 阅读 · 0 评论 -
express之全局中间件init
lib/middleware/init.js//初始化中间件工厂函数,app为express实例,返回中间件//这个中间件是全局的,所有请求都会被它处理exports.init = function(app){ //返回一个普通中间件函数 return function expressInit(req, res, next){ //如果启用x-porweed-by,在响应头原创 2018-02-03 21:34:25 · 483 阅读 · 0 评论 -
express之全局中间件query
lib/middleware/query.js//express初始化全局中间件,options为express上的query parse fn 属性值module.exports = function query(options) { var opts = merge({}, options) //查询字符串解析器 var queryparse = qs.parse; //原创 2018-02-03 21:38:16 · 1041 阅读 · 0 评论 -
express之request.js
lib/request.js//请求原型对象继承了http原生的请求原型var req = Object.create(http.IncomingMessage.prototype)module.exports = req//get、header方法都是获取指定名称请求头req.get =req.header = function header(name) { //名称不存在,原创 2018-02-03 22:49:32 · 581 阅读 · 0 评论 -
express之response.js
lib/response.js//继承了node原生的响应原型var res = Object.create(http.ServerResponse.prototype)module.exports = res//字符集正则表达式var charsetRegExp = /;\s*charset\s*=/;//设置响应码res.status = function status(co原创 2018-02-05 20:26:03 · 833 阅读 · 0 评论 -
express之view.js
lib/view.jsfunction View(name, options) { //选项 var opts = options || {}; //默认引擎 this.defaultEngine = opts.defaultEngine; //视图名的扩展名 this.ext = extname(name); //视图名 this.name = name;原创 2018-02-05 20:45:37 · 677 阅读 · 0 评论 -
express之router
lib/router/index.js//对象正则表达式,用来匹配对象toString方法的结果var objectRegExp = /^\[object (\S+)\]$/;var slice = Array.prototype.slice;var toString = Object.prototype.toString;//router对象的构造函数var proto = mo原创 2018-02-06 23:57:49 · 469 阅读 · 0 评论 -
express之route.js
lib/router/route.jsmodule.exports = Route;//使用给定路径构造Route对象function Route(path) { //设置路径 this.path = path; //堆,用来存储Layer对象,不同的Layer对象处理不同http方法的请求,这里不做路径匹配 this.stack = []; debug('new %原创 2018-02-06 23:59:22 · 285 阅读 · 0 评论 -
express之application.js
lib/application.js//express应用程序原型var app = exports = module.exports = {};var trustProxyDefaultSymbol = '@@symbol:trust_proxy_default';//express实例初始化方法,使用express()创建express实例时会调用此方法app.init = fu原创 2018-02-03 12:06:41 · 751 阅读 · 1 评论