Articles of sails.js

express / sails.js模块导出私有方法和其他模块的关系

我了解module.export的用途 基本上,它期望一个function的对象: // Parent.js module.exports = { createChild: function(req, res) { … Child.Create(..) .. } } 1)模块对象中的函数如何能够调用其他模块? 例如,在Parent.js中,我也可以调用另一个模块Child.js。 2)如果我想添加私人functionParent.js(不能通过要求访问),可以访问父数据库就像module.export内的函数 例如: // Parent.js function validateInput(req) { } module.export = { }

Sails.js:如何使用模型关联来填充数组

我正在使用“sails”:“〜0.10.0-rc5”,“sails-mongo”:“^ 0.10.0-rc3”。 我有2个模型:发票,项目。 发票模型 Invoice: { name: 'sample 1', items: [1,2] // 1,2 is id of Item model } 项目模型 Item { id: 1, name: "king" } Item { id: 2, name: 'queen' } 我想要的结果是: Invoice: { name: 'sample 1', items: [{ id: 1, name: "king" }, { id: 2, name: 'queen' }] } 我从帆文件中读取模型协会,但我不知道如何使用它在我的情况。

有没有更好的方法来避免重复的生命周期callback?

水线允许模型上的一些生命周期callback,如下所示… beforeValidation / fn(values,cb) beforeCreate / fn(values,cb) afterCreate / fn(newInsertedRecord,cb) beforeValidation / fn(valuesToUpdate,cb) beforeUpdate / fn(valuesToUpdate,cb) afterUpdate / fn(updatedRecord,cb) beforeDestroy / fn(criteria,cb) afterDestroy / fn(cb) 但是,如果我想在创build和更新之前采取行动呢? Rails有一个beforeSave ,这非常棒。 在sails.js中有类似的东西吗? 我可以有两个callback调用一个函数,但我想确定没有更好的方法。

Sails.js,获取请求params一个json对象

我在Sails.js中使用套接字 以下是一个示例客户端代码: socket.get('/message/send', {from: userId, to: recepientId, content: textMessage}); 这就是我如何获取控制器(服务器)中的数据: var to = req.param('to'); var from = req.param('from'); var content = req.param('message'); 现在,因为我发送的数据作为JSON,我想把它作为一个JSON对象。 所以消息最终是一个模型,我想直接使用json对象将数据存储在数据库中。 我使用socket.emit('channel',{userId: "someId"})时,类似的东西对我来说是有效的。所以我在socket.on('channel', function(userJsonObject){});接收到一个JSON对象socket.on('channel', function(userJsonObject){}); 那么当我使用socket.get()时,如何得到类似的JSON对象

将节点应用中的git隐私部署到Heroku中

我是Heroku的新手,但我设法将我的开发第一次Sails @ beta部署到Heroku,我创build了一个Heroku应用程序,并将我的git提交提交给Heroku提供的git存储库。 Heroku私人提供的git存储库? 有没有可能跟踪UI(类似GitHub)的变化? 还是我需要购买一个私人的Git仓库,并将其链接到Heroku?

SailsJS v0.10由许多协会查找模型

我一直在享受v0.10中新的Sails关系,但是我目前面临的最大挑战是通过他们的协会来查找模型。 如果我已经填充了一个手动关联,比如一个ID数组,这将会非常容易。 但是,我似乎无法find用Sails关联来处理查找的正确方法。 我提供了一些示例代码,概述了两个模型,一个公司和一个用户。 公司可以有很多用户,而一个用户只能有一个公司。 这是一个非常简单的一对多关系,目标是find与用户ID匹配的所有公司。 ## Company.js name: type: 'string' required: true users: collection: 'User' via: 'company' ## User.js company: model: 'Company' required: true last_name: type: 'string' required: true first_name: type: 'string' required: true ## Lookup Users by Company ID of '2' User.find(where: company: 2).exec(console.log) # Result # [] – Array of users matching […]

限制在Sails.js模型中设置的字段

所以我有一个像这样的字段的模型: // … slug: { type: 'string', required: true, alphanumeric: true, minLength: 3, maxLength: 16 }, loggedinAt: 'date', // … 我正在使用Sails蓝图结构,以便自动映射所有内容。 但是,有时我有像loggedinAt严格内部的字段,我不希望他们能够由用户设置。 如果我使用loggedinAt字段发布post请求,它将会设置它。 我怎样才能限制呢?

持久会话与passportjs + sails.js实现

任何人都可以指向我的链接或解释如何在sails.js中使用passportjs实现持久会话。 我知道它涉及到连接mongo,但不知道如何实现它。 每次nodejs重新启动时,会话都会被销毁。 请说明一下。 谢谢。

我可以把全局variables放在控制器中吗?

我需要像下面这样的东西: module.exports = { 'globalVariable' : "globalVariable" , 'index' : function(req, res, next){ this.proyectos = ""; Proyecto.find().done(function(err, proyectos){ globalVariable = proyectos; }); res.view({ 'data' : globalVariable }); }, _config: {} }; 这将帮助我避免向数据库发出请求,并可以将不同模型的数据发送到视图。 非常感谢您能给我的帮助。

帆升降机导致错误ENOENT(没有这样的文件或目录)

我试图启动这个项目https://github.com/lucj/sails-oauth2-api从中学习,但我很难得到它的工作。 我安装了先决条件: npm安装 在项目目录的terminal中 当我做: strace -f -e trace=process sails lift 它给了我以下的debugging输出。 execve("/usr/bin/sails", ["sails", "lift"], [/* 64 vars */]) = 0 arch_prctl(ARCH_SET_FS, 0x7f4017319740) = 0 execve("/usr/local/sbin/node", ["node", "/usr/bin/sails", "lift"], [/* 64 vars */]) = -1 ENOENT (No such file or directory) execve("/usr/local/bin/node", ["node", "/usr/bin/sails", "lift"], [/* 64 vars */]) = -1 ENOENT (No such file […]