Articles of sails.js

sails.js – 如何在模型钩子beforeCreate中获取会话数据

我想更新模型的字段“所有者”。 所有者需要从包含当前login的用户并创build模型的会话中获取。 我想要这样的东西: Model = { attributes: { }, beforeCreate(values,next) { var owner_user_id = req.session.user_id; values.owner = owner_user_id; next(); } }

如何在sails.js 0.10中接收套接字事件?

我有一个名为Collection.js的模型,它看起来像这样: module.exports = { attributes: { title: { type: 'string', required: true }, description: { type: 'text', required: false }, sessions: { collection: 'session', via: 'collection' } } } 据我所知,这个消息是在创build新模型实例时通过套接字发送的,可以通过模型名称获得。 所以我已经在我的app.coffee文件中进行了app.coffee : socket = io.connect() socket.on 'collection', -> console.log 'hey' 我已经validation了“环境”的作用,因为我得到了socket.on 'connect'. -> console.log 'hey'通知socket.on 'connect'. -> console.log 'hey' socket.on 'connect'. -> console.log 'hey' ,但我没有得到任何模型事件,如创build或破坏logging! […]

一个迁移文件中有多个迁移语句

我试图在一个迁移文件中执行多个迁移语句,以便一次性更改同一个表的多个列。 我想知道我是否以写作的方式去做,还是有更好更合适的方法去做: 迁移代码 module.exports = { up: function(queryInterface, Sequelize, done) { queryInterface.changeColumn('users', 'name', { type: Sequelize.STRING, allowNull: false, require: true, unique: true }).success(function() { queryInterface.changeColumn('users', 'address', { type: Sequelize.STRING, allowNull: false, require: true, unique: true }).success(function() { queryInterface.changeColumn('users', 'city', { type: Sequelize.STRING, allowNull: false, require: true, unique: true }).success(function() { queryInterface.changeColumn('users', 'state', { type: Sequelize.STRING, […]

Sails.js:如何在bootstrap中使用i18n

如何在Sails.js的bootstrap中使用i18n? 这里是控制器动作中的“res.i18n”,但是我没有find像sails.i18n这样的全局实例(已经初始化)。 我猜下面的代码应该在bootstrap.js中工作: i18n = require('i18n'), i18n.configure({ locales: sails.config.i18n.locales, directory: sails.config.appPath + sails.config.i18n.localesDirectory, defaultLocale: sails.config.i18n.defaultLocale, updateFiles: false, extension: '.json' }); __('Hello'); 但是可能有更好的办法吗?

节点js删除目录中的旧文件

我想删除一些目录中的文件达到一定的限制(例如,如果文件数量超过20删除文件) 如果可以执行任何自动化操作来删除这些文件,那就太好了。 详细:在我的情况下,有一个上传目录,我上传的图像。 对于每个新图像,都会创build一个目录,并将图像保存在目录中。 所以我想保留一些新创build或最近使用的目录,并在一定的限制之后删除其他目录(例如达到20个目录之后)。 在创build新图像时,它会检查限制,如果超出最大限制,它将删除未使用的目录。 注意:目录不是空的。 我怎样才能做到这一点使用Node.js 任何帮助将是可观的。

如果属性已定义,则从“水线”中的模型获取结果

我有一个不需要每个属性的模型。 我想要查询模型并返回属性定义的所有实例。 这是我认为代码应该看起来像,但它不起作用。 任何想法或链接到一些详细的文档? MyModel.find() .where({ "propertyThatMayExist" : { "!=" : undefined } }); 预先感谢一堆!

大多数中间件(如compress)不再与Express捆绑在一起

我刚刚安装了sails@v0.9.16,express@4.0.0,compression@1.0.1和compress@0.1.9(只是为了确保)。 但是我在sails lift时仍然有下面的错误 /Users/myuser/myproject/backend/node_modules/express/lib/express.js:89 throw new Error('Most middleware (like ' + name + ') is no longer bundle ^ Error: Most middleware (like compress) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware. at Function.Object.defineProperty.get (/Users/myuser/myproject/backend/node_modules/express/lib/express.js:89:13) at Object.module.exports.express.customMiddleware (/Users/myuser/myproject/backend/config/passport.js:127:20) at Array.loadExpress [as 1] (/usr/local/lib/node_modules/sails/lib/express/index.js:162:25) at listener (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:462:46) at /usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:416:17 at […]

sails.js资产版本控制

我正在使用sails.js资产链接器。 我正在通过在其中附加一个资产版本来版本化我的资产,如下所示: assetfile.js?=<%= assetVersion %> 不幸的是,这是行不通的,因为js文件名正在被链接器取代! sails.js链接器是否支持这个工作? 还是我自己离开了咕噜文件?

在第一次解除Sails.js应用程序时加载数据(灯具)

我正在使用Sails.js 0.10 RC7。 当开发人员签出一个项目并运行它时,我想预先填充一些数据到数据库中。 这应该只在应用程序运行的第一次完成(或者,也许我们应该有新的数据添加到夹具时发生这种情况)。 我可以把数据放在config/bootstrap.js但据我了解,每次运行sails lift都会运行。 我可以这么做,写一些逻辑,但是如果已经有一个关于这个的惯例,那么使用它会很好。 只是要清楚,我并不是专指testing设备,而是假定在任何运行环境中都可以使用的一些数据。 任何人已经解决这个问题?

如何在sails.js中维护多个API版本

有没有人有使用sails.js维护多个版本的API的想法? 想象一个简单的例子: // Request GET /api/v1/catVids?min_view_count=10000 // Response [{"video_title": "top cat fails"}, {"video_title": "funny-ass cats"}] 用户正在积极地消费API的v1版本,但现在已经改变了将破坏现有function的需求。 例如,属性名称更改。 所以现在我们需要使用一个不同的控制器来满足这个新行为的要求。 我想要做的是两个API共存,所以向后兼容性不会中断。 // Request GET /api/v2/catVids?minimum_view_count=10000 // Response [{"title": "top cat fails"}, {"title": "funny-ass cats"}] 但是,我不确定实现这个最好的方法。 我认为可以工作的一种方法是在sails应用程序中使用以下目录设置: api/ |– controllers/ |—- v1/ |—— CatController.js |—- v2/ |—— CatController.js |– models/ |—- v1/ |—— Cat.js |—- v2/ |—— Cat.js […]