Questions tagged «middleware»


8
bodyParser弃用Express 4
我正在使用Express 4.0,并且我知道主体解析器已从Express核心中移除,我正在使用推荐的替代产品,但是我得到了 body-parser deprecated bodyParser: use individual json/urlencoded middlewares server.js:15:12 body-parser deprecated urlencoded: explicitly specify "extended: true" for extended parsing node_modules/body-parser/index.js:74:29 我在哪里可以找到这个所谓的中间件?还是我不应该得到这个错误? var express = require('express'); var server = express(); var bodyParser = require('body-parser'); var mongoose = require('mongoose'); var passport = require('./config/passport'); var routes = require('./routes'); mongoose.connect('mongodb://localhost/myapp', function(err) { if(err) …

3
Node.js / Express.js-app.router如何工作?
在询问之前,app.router我认为至少应该解释一下使用中间件时发生的事情。要使用中间件,要使用的功能是app.use()。当执行中间件时,它将使用next()或使其调用下一个中间件,从而不再调用任何中间件。这意味着我放置中间件调用的顺序很重要,因为某些中间件依赖于其他中间件,而接近末尾的某些中间件甚至可能不会被调用。 今天,我正在开发应用程序,并在后台运行服务器。我想进行一些更改并刷新页面,然后立即查看更改。具体来说,我正在更改布局。我无法使它正常工作,所以我在Stack Overflow中搜索了答案,并找到了这个问题。它说要确保它express.static()在下面require('stylus')。但是,当我查看该OP的代码时,我发现他app.router在中间件调用的最后就接到了他的电话,而我试图弄清楚为什么会这样。 当我制作Express.js应用程序(版本3.0.0rc4)时,我使用了命令,express app --sessions --css stylus并且在我的app.js文件中,app.router在express.static()和require('stylus')调用上方都设置了代码。如此看来,如果它已经以这种方式设置,那么它应该保持这种方式。 重新排列代码以便可以看到手写笔更改之后,它看起来像这样: app.configure(function(){ //app.set() calls //app.use() calls //... app.use(app.router); app.use(require('stylus').middleware(__dirname + '/public')); app.use(express.static(__dirname + '/public', {maxAge: 31557600000})); }); app.get('/', routes.index); app.get('/test', function(req, res){ res.send('Test'); }); 因此,我决定第一步就是要弄清楚为什么甚至app.router在我的代码中也很重要。因此我将其注释掉,启动了我的应用程序并导航至/。它显示我的索引页面就好了。嗯,也许是可行的,因为我正在从路由文件(routes.index)中导出路由。因此,接下来我导航到/test它,并在屏幕上显示Test。哈哈,好吧,我不知道该怎么办app.router。无论它是否包含在我的代码中,我的路由都可以。因此,我肯定会缺少一些东西。 所以这是我的问题: 有人可以解释一下app.router它的功能,重要性以及在中间件调用中的位置吗?如果得到有关的简要说明,那也很好express.static()。据我所知,express.static()是我的信息的缓存,如果应用程序找不到请求的页面,它将检查缓存以查看其是否存在。

15
中间件到底是什么?
我最近听到很多人在谈论中间件,但是中间件的确切定义是什么?当我研究中间件时,会发现很多信息和一些定义,但是在阅读这些信息和定义时,似乎几乎所有“软件”都在中间。那么,所有东西都是中间件吗? 还是您有一个非中间件商品的示例?

6
在Express.js中使用next()将变量传递到下一个中​​间件
好吧,我的问题是我想将一些变量从第一个中间件传递给另一个中间件,我尝试这样做,但是有req.somevariable一个“给定为'undefined'”。 //app.js .. app.get('/someurl/', middleware1, middleware2) ... ////middleware1 ... some conditions ... res.somevariable = variable1; next(); ... ////middleware2 ... some conditions ... variable = req.somevariable; ...


1
Express中间件中的req.locals与res.locals与res.data,req.data与app.locals
有人问过类似的问题,但我的问题是,如果我想传播通过不同路由中间件得到的中间结果,什么是最好的方法? app.use(f1); app.use(f2); app.use(f3); function f1(req,res,next) { //some database queries are executed and I get results, say x1 res.locals.dbResults = {...}; next(); } function f2(req,res,next) { // more processing based upon req.locals.dbResults res.locals.moreResults = {....}; next(); } // ... 我认为我可以通过使用req .locals通过不同的中间件获得相同的数据传播。同样,请求和响应对象似乎都具有在请求开始时初始化为空对象的locals属性。 另外,也可以设置res.mydata或req.mydata属性吗? 从理论上讲,app.locals也可以用于通过不同的中间件传递这些数据,因为它们会在中间件之间持久存在,但这与传统的app.locals用法相反。它更多地用于特定于应用程序的数据。还必须在请求-响应周期结束时清除该数据,以便将相同的变量用于下一个请求。 通过中间件传播中间结果的最佳和标准方法是什么?

6
将Express中的特定中间件用于除特定路径之外的所有路径
我在带有一些中间件功能的node.js中使用Express框架: var app = express.createServer(options); app.use(User.checkUser); 我可以将.use函数与附加参数一起使用,以仅在特定路径上使用此中间件: app.use('/userdata', User.checkUser); 是否可以使用path变量,以便将中间件用于除特定路径(即根路径)以外的所有路径? 我在想这样的事情: app.use('!/', User.checkUser); 所以User.checkUser总是被调用,除了根路径。

3
在ExpressJS中为特定路由链接多个中间件
我只想验证一下内容,但无法在Express文档或在线文档中找到与此相关的内容(尽管我知道这是一个功能)。 我可以对其进行测试,但我实际上并没有一个很好的模板,希望听到社区的意见。 如果我这样定义快递路线: app.get('/', function (req, res) { res.send('GET request to homepage'); }); 我还可以定义一个中间件并直接加载它,例如 middleware = function(req, res){ res.send('GET request to homepage'); }); app.get('/', middleware) 但是,我也可以链接这些路由中的至少一个来运行额外的中间件,例如身份验证,如下所示: app.get('/', middleware, function (req, res) { res.send('GET request to homepage'); }); 这些是无限连锁的吗?如果愿意,可以在给定的路由上添加10个中间件功能吗?我想查看app.get可以接受的参数,但是就像提到的那样,我在文档中找不到它。

11
消息驱动与事件驱动的应用程序集成方法
我想知道当我们提到SOA或中间件时,通常在应用程序和企业集成的情况下,消息驱动环境和事件驱动环境之间是否存在明显的区别。我了解到,用户界面类似于事件驱动的模型,其中我们的系统拦截用户的操作。 同样很明显,消息传递支持基于发布/订阅,同步或异步通信,事务等的系统。 但是中间件/ soa /应用程序集成上下文是否有所不同?(体系结构级别)。我正在尝试查阅Wikipedia的资源(here和here),但是我仍然有些困惑。开发人员何时应首选一种解决方案? 是否存在一些例子或案例,其中一种方法比另一种方法更有意义?或是否有任何综合资源和实施指南? 非常感谢您的见解。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.