使用带风帆的快速设备

时间:2013-12-07 00:54:17

标签: node.js sails.js

一直试图使用sails框架作为计划移植我的快递应用程序。 我遇到的问题是如何使快递设备npm包使用它。在快递应用程序中,我只需要模块,例如var device = require('express-device'),然后在server.configure中配置它。有什么帮助吗?

2 个答案:

答案 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的答案相同的结果。