sailsjs v0.10表示customMiddleware未加载

时间:2014-02-16 04:18:08

标签: express sails.js

有人能告诉我如何在sails v0.10中加载customMiddleware或任何获取快速应用程序的功能吗?

过去你可以在/config/express.js中有以下内容:

customMiddleware: yourFunc(app){
  //do stuff including
  // app.use(myMiddleware)
}

在v0.10中不再调用express.js的成员 - 至少在默认情况下不会。您可以通过使用" sails new"创建一个新的应用程序来证明这一点。并在config.express.customMiddleware中定义一个新函数。它不会开火。

有人知道如何启用此功能吗?或者是否有其他地方或配置选项可以让我在启动时访问快递应用程序?

2 个答案:

答案 0 :(得分:6)

在Sails 0.10中,customMiddleware的处理略有变化。在版本0.10中,该方法需要在http挂钩(而不是express挂钩中配置,如在先前版本中那样)。

记住你的sails.config.http.middleware.order列表中需要有'$custom'中间件条目也是非常重要的,因为它会触发自定义中间件函数运行。

因此,为了添加任何自定义初始化,您可以将以下更改添加到/config/http.js文件中:

module.exports.http = {
    // ...
    customMiddleware: function(app) {
        // do something ...
    }
    // ...
}

或者,如果您想要执行依赖于环境的自定义,例如,在生产中,您可以向/config/env/production.js

添加以下更改
module.exports = {
    // ...
    http: {
        customMiddleware: function(app) {
            // do something in production environment
        }
    }
    // ...
}

我使用该方法启用信任代理 express标记。

示例:

...
   http: {
    customMiddleware: function(app) {
        app.enable('trust proxy');
    }
  }
...

可以在Sails Github上找到代码处理:/sails/lib/hooks/http/middleware/load.js

顺便说一下,当在Sails 0.10中使用快速挂钩时,您将收到以下警告:

  

警告:sails.config.express已被弃用;请改用sails.config.http

答案 1 :(得分:5)

您必须为要装入的config.express.costumMiddleware指定其他配置。通过将config.middleware.custom设置为true,您可以启用以前Sails版本的此默认行为。

// config/express.js
module.exports.express = {
  middleware: {
    custom: true
  },

 customMiddleware: function(app){
    // express middleware here
 }
};

相关提交

a89a883c22

相关来源

sails/lib/hooks/http/load.js