首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >光帆一体化

光帆一体化
EN

Stack Overflow用户
提问于 2015-07-11 11:21:19
回答 1查看 98关注 0票数 1

我正在尝试将反光与sails.js集成。他们有一个node.js 客户端,其中包括对Connect和Express的中间件支持。我尝试在http.js中创建一个自定义中间件

代码语言:javascript
复制
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'
    ],

  }
};

不幸的是它不起作用了。如果你能帮我指出正确的方向。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-14 00:34:51

从初始化器函数返回的值不是一个适当的中间件函数(它只是一个Opbeat客户端)。要获得中间件功能,请在客户机上调用middleware.connect()

代码语言:javascript
复制
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放在最后。这一点很重要,因为它可以捕获错误,在中间件链上挠痒地运行。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31356650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档