为什么SailsJS中默认注释掉默认的中间件订单配置?

时间:2016-08-23 04:44:05

标签: sails.js

我尝试添加自定义中间件(express-useragent)。我把它放在http.js中的中间件对象中:

useragent: require('express-useragent').express()

但它没有用。我读到我需要取消注释order数组,并且我的自定义中间件将在'$custom'条目在该数组中的任何位置运行。我这样做但仍然没有调用我的自定义中间件。然后我用我的中间件替换'myRequestLogger',如下所示:

order: [
      'startRequestTimer',
      'cookieParser',
      'session',
      'useragent', //'myRequestLogger',
      'bodyParser',
      'handleBodyParserError',
      'compress',
      'methodOverride',
      'poweredBy',
      '$custom',
      'router',
      'www',
      'favicon',
      '404',
      '500'
    ],

现在它可以工作,但我不确定这是否是我应该使用的正确顺序。是否有理由将订单数组注释掉?为什么在将自定义中间件添加到对象后它才能正常工作。这很令人困惑。

1 个答案:

答案 0 :(得分:1)

在sails配置中注释掉的所有内容实际上都是默认值。我猜他们决定这样做,所以更容易看到哪些部分被改变了......

关于你的第二个问题,据我所知,你必须将它添加到订单数组,以指定何时应该使用中间件。毕竟订单确实有所作为。 Sails将从顶部开始,并为每个请求自己创建一个中间件层到下一个中​​间件层。