【问题标题】:sailsjs v0.10 express customMiddleware not loadingsailsjs v0.10 express custom中间件未加载
【发布时间】:2014-03-15 11:00:50
【问题描述】:

谁能告诉我如何在sails v0.10 中加载customMiddleware 或任何获取express 应用程序的函数?

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

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

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

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

【问题讨论】:

  • 如果提供的答案适合您,您能否将其标记为已接受?只是为了记录。
  • 是的,我最近没回来过,抱歉拖了这么久!

标签: express sails.js


【解决方案1】:

您必须为要挂载的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

【讨论】:

  • 仅供参考,这是无意的行为,将在下一个补丁中修复,因此您的自定义中间件不再需要设置 custom:true 才能运行。但是把那个钥匙留在里面不会有任何不良影响,所以这个答案仍然有效!
【解决方案2】:

在 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
        }
    }
    // ...
}

我使用这种方法来启用 trust proxy express 标志。

例子:

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

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

顺便说一句,在 Sails 0.10 中使用 express hook 时,您会收到以下警告:

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

【讨论】:

猜你喜欢
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
相关资源
最近更新 更多