我正在尝试将反光与sails.js集成。他们有一个node.js 客户端,其中包括对Connect和Express的中间件支持。我尝试在http.js中创建一个自定义中间件
module.exports.http = {
middleware: {
opbeat : require('opbeat')({
organizationId: '...',
appId: '...',
secretToken: '...'
}),
order: [
'opbeat',
'startRequestTimer',
'cookieParser',
'session',
'myRequestLogger',
'bodyParser',
'handleBodyParserError',
'compress',
'methodOverride',
'poweredBy',
'$custom',
'router',
'www',
'favicon',
'404',
'500'
],
}
};不幸的是它不起作用了。如果你能帮我指出正确的方向。
发布于 2015-07-14 00:34:51
从初始化器函数返回的值不是一个适当的中间件函数(它只是一个Opbeat客户端)。要获得中间件功能,请在客户机上调用middleware.connect():
var opbeat = require('opbeat')({
organizationId: '...',
appId: '...',
secretToken: '...'
})
module.exports.http = {
middleware: {
opbeat: opbeat.middleware.connect(), // get the Opbeat middleware function
order: [
... // put the bulk of your middleware here
'opbeat'
]
}
}这个函数被称为middleware.connect(),因为是连接模块设置了一个中间件函数的标准,该函数需要3个参数:请求、响应和回调。有一个名为middleware.express()的别名,但它只是一个别名。
更新:
在上面的示例中,我颠倒了中间件的顺序,以便将Opbeat放在最后。这一点很重要,因为它可以捕获错误,在中间件链上挠痒地运行。
https://stackoverflow.com/questions/31356650
复制相似问题