在sails.js v0.10.5中实现以下代码的最佳方法是什么?我是否应该通过政策来处理这个问题,如果是这样,怎么办? Stormpath所需的init()函数需要Express(app)作为参数。目前,我在sails.config.http.js中使用以下代码作为自定义中间件。
customMiddleware: function(app) { var stormpathMiddleware = require('express-stormpath').init(app, { apiKeyFile: '', application: '', secretKey: '' }); app.use(stormpathMiddleware); }
答案 0 :(得分:2)
是的,这是启用带有Sails的自定义Express中间件的首选方式,如果它不只是处理请求(在您的情况下,.init
需要app
)。对于您希望实现仅处理请求的自定义中间件的简单情况,您可以将处理程序添加到sails.config.http.middleware
,并将处理程序名称添加到sails.config.http.middleware.order
数组。有关使用config/http.js
的示例,请参阅myRequestLogger
中已注释的默认值。
另请注意,$custom
数组中的sails.config.http.middleware.order
键表示customMiddleware
代码的执行位置,因此您可以根据需要更改订单。