一直试图使用sails框架作为计划移植我的快递应用程序。 我遇到的问题是如何使快递设备npm包使用它。在快递应用程序中,我只需要模块,例如var device = require('express-device'),然后在server.configure中配置它。有什么帮助吗?
答案 0 :(得分:2)
好的,所以我找到了解决方案......在运行npm install express-device --save之后我必须在config / dir中创建一个express.js模块,模块的内容如下所示:
module.exports.express = {
customMiddleware: function (app) {
var device = require('express-device');
app.use(device.capture());
}
};
所以现在在每个控制器中,如果需要,我可以找到请求来自的设备类型:
index: function(req, res) {
device = req.device.type;
if(device == 'mobile') {
// do something different ;)
}
}
也许有一些更聪明的方法可以做到这一点,但这对我来说很好:)
答案 1 :(得分:0)
我花了一些时间来查看Sails中间件文档(http://sailsjs.org/documentation/concepts/middleware)来解决这个问题,但它最终比上一个答案更容易。
在config/http.js
中,您需要添加以下代码:
module.exports.http = {
middleware: {
order: [
...
'expressDevice',
...
],
expressDevice: require('express-device').capture(),
}
}
这将得到与之前每个请求都有req.device
的答案相同的结果。