Tag: sails.js waterline

在更新挂钩之前获取Sails的水线内的当前值

在Sails的Waternline中,我需要能够比较以前的值和新的值,并在某些情况下分配一个新的属性。 例如: beforeUpdate: function(newValues, callback) { if(/* currentValues */.age > newValues.age) { newValues.permission = false; } } 我怎样才能访问currentValues ?

MongoDB:如何在同一个数据库中search多个集合并返回混合结果集?

我有一个单页面应用程序,它是基于在Node.js上运行的JavasScript中编写的API并使用MongoDB进行数据存储的。 API公开了几种不同的内容types,每种内容都存储在我的MongoDB数据库的一个单独的集合中。 我的单页面应用程序有一个search栏,包含一个下拉select内容types(每个对应于我的MongoDB数据库中的不同集合)和一个input字段来指定一个将要应用的search查询。 我想要做的是:在我的下拉菜单中添加一个名为“All”的选项,当选中此选项时,我的API将返回五个最近创build的文档,而不pipe包含这些文档的集合。 所以,作为一个例子,我可能有以下的集合: 汽车 飞机 船 自行车 我想在我的API中编写JavaScript,返回这些中的最近五个。 因此,如果用户search“G”,我生成的JSON响应可能包含来自每个集合的几个文档,如下所示: [ { "_id": "123", "name": "Golf, "collection: "Automobile", "createdAt": "2014-06-20T01:45:00.0000Z" }, { "_id": "234", "name": Gulfstream", "collection": "Airplane", "createdAt": "2014-06-19T01:45:00.0000Z" }, { "_id": "345", "name": "Glastron", "collection": "Boat", "createdAt": "2014-06-18T01:45:00.0000Z" }, { "_id": "456", "name": "Gary Fisher", "collection" "Bicycle", "createdAt": "2014-06-17T01:45:00.0000Z" } { "_id": […]

Sailsjs与Sails-SqlServer和Waterline ORM

在正确理解水线ORM文档时遇到一些困难。 我正在寻求关于查询MSSQL数据库的正确方法的build议,而没有在我的Sails API中定义模型。 到目前为止,我已经成功创build了必要的连接并下载了sails-sqlserver npm软件包。 我有一个以下代码的控制器: module.exports = { /** * @name: all * @description: return a list of items **/ all: function(req, res){ /** as per Waterline documentation, use a use an arbitary model to create a raw SQL query **/ Items.query("select * from table", function(err, resultSet){ if(err) return res.send(err); return res.ok(resultSet); }); } […]

隐藏属性到console.log或utils.inspect

我正在与sails.js waterline orm合作。 现在这不是一个特别的问题,但是我必须放置一些上下文,所以当你创build一个logging时,你会得到一个创build了数据的对象。 如果logging有关联的其他logging(集合),它具有与返回对象中的相关的键,但是这些键是getter / setter,即使这些相关对象没有数据存在。 我已经简化了一些事情来揭露主要观点。 这是我的用户模型: var User = { attributes: status: {type:'string'} images: { collection: 'Image' } } 让我猜,我执行一个用户模型,有一个图像集合相关的创build查询。 userRecord是查询返回的内容。 如果我console.log这个出来它显示了与模型本身相关的属性,但没有关联的logging,即使密钥实际上在那里,你可以访问它,但是不能看到console.log或utils.inspec即使设置显示隐藏到真实。 console.log(userRecord) 这是什么得到返回 { name: 'zaggen'} 这是应该返回的 { name: 'zaggen', images: [{ path: 'some-path/img.png' }] } 我可以像这样访问隐藏的属性: console.log(userRecord.images[0].path) // outputs some-path/img.png 这怎么可能?据我所知,没有办法将信息隐藏到节点中的console.log中,除了可能在__proto__对象中定义属性,但在这种情况下它们不是。 find这个之后,我还没有发现任何东西,也很奇怪,所以我认为这可能是一个很好的问题。 这将有助于我的工作过程,如果我可以console.log这个信息,并获得所有的数据,现在我可以使用lodash和调用克隆或默认和我得到的对象,因为它应该。

水线ORM等效插入重复键更新

我有一个表user_address,它有一些像这样的字段 attributes: { user_id: 'integer', address: 'string' //etc. } 目前我正在做这个插入一个新的logging,但如果这个用户存在,更新它: UserAddress .query( 'INSERT INTO user_address (user_id, address) VALUES (?, ?) ' + 'ON DUPLICATE KEY UPDATE address=VALUES(address);', params, function(err) { //error handling logic if err exists } 有没有办法使用水线ORM而不是直接的SQL查询来实现相同的事情? 我不想做两个查询,因为它效率低下,难以维护。

水线,findarrays

我有video模型: module.exports = { attributes: { id: 'string', tags: 'array' }, } 我想find所有标签为例如“你好”或“世界”的video。 我可以很容易地得到所有的video,如:Video.find({tags:“Hello”})。 我看到了searchid:[1,2,3]而不是key(id => tags)是数组的情况。

在Sails.JS / Waterline中汇总嵌套的模型数据

我正在努力把我的业务逻辑放在我的SailsJS项目中。 我的数据模型如下: Portfolio (hasMany) -> Positions (hasOne) -> Asset-> (hasMany) Ticks 我正在寻找聚合数据的孩子使用父级模型上的计算属性级联一路到组合。 eG an Asset知道最新的报价(价格),仓位知道其当前价格(其数量最less的股票数量),等等。理想情况下,我想将这些数据添加到JSON中,以便将业务逻辑从Ember客户端移开。 这工作正常的一个级别,但如果我尝试使用一个孩子的计算属性,它是要么未定义或使用toJSON()空 Asset.js: latestTick: function () { if (this.ticks.length> 0) { this.ticks.sort(function(a, b){ var dateA=new Date(a.date), dateB=new Date(b.date) return dateB-dateA }) return this.ticks[Object.keys(this.ticks)[0]].price; } return 0; }, toJSON: function() { var obj = this.toObject(); if (typeof this.latestTick === 'function') obj.latestTick = […]

sailsjs“错误:将模型转换为对象时出错。

sailsjs 0.11,节点0.12.4。 护照0.2.1和护照本地1.0 使用sailsjs蓝图路线只是为了看看发生了什么。 该项目只是一个简单的博客,我试图看蓝图路由/user/4中的用户configuration文件来显示我的用户名为4.此消息是结果。 任何想法是什么造成这个? 注:我没有任何附近的帆/水线源。 完整的错误信息 /home/vagrant/nodeprojs/<project>/node_modules/sails/node_modules/waterline/lib/waterline/model/lib/defaultMethods/toObject.js:59 throw err; ^ Error: There was an error turning the model into an object. at new module.exports (/home/vagrant/nodeprojs/<project>/node_modules/sails/node_modules/waterline/lib/waterline/model/lib/defaultMethods/toObject.js:56:15) at prototypeFns.toObject (/home/vagrant/nodeprojs/<project>/node_modules/sails/node_modules/waterline/lib/waterline/model/index.js:30:14) at prototypeFns.toJSON (/home/vagrant/nodeprojs/<project>/node_modules/sails/node_modules/waterline/lib/waterline/model/index.js:112:20) at Object.stringify (native) at ServerResponse.res.json (/home/vagrant/nodeprojs/<project>/node_modules/sails/node_modules/express/lib/response.js:217:19) at sendJSON (/home/vagrant/nodeprojs/<project>/api/responses/ok.js:34:23) at viewReady (/home/vagrant/nodeprojs/<project>/api/responses/ok.js:72:25) at viewFailedToRender (/home/vagrant/nodeprojs/<project>/node_modules/sails/lib/hooks/views/res.view.js:276:16) at Function.app.render (/home/vagrant/nodeprojs/<project>/node_modules/sails/node_modules/express/lib/application.js:514:14) at ServerResponse.res.render (/home/vagrant/nodeprojs/<project>/node_modules/sails/node_modules/express/lib/response.js:827:7) at […]

Sails.js:MySQL中缺less水线外键关联

我在sails.js中使用水线ORM。 我有一个用户模型和另一个与用户模型关联的硬币模型。 //coins.js attributes: { name: 'string', // Associations userId: { model: 'user' } } 为此模型生成的查询是 CREATE TABLE `coins` (`name` VARCHAR(255) , `userId` INT , `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `createdAt` DATETIME , `updatedAt` DATETIME ) 该查询应该包含userId的外键约束,但不包含。 有没有解决方法?

SailsJS上的外键约束

这是我的大学模式 module.exports = { attributes: { name:{ type:'string', required:true }, location:{ type:'string', required:true }, faculties:{ collection:'faculty', via:'college' } } }; 这是我的师资模式 module.exports = { attributes: { name:{ type:'string', required:true }, description:{ type:'string' }, college:{ model:'college', required:true } , years:{ collection:'year', via:'faculty' } } }; 我的问题是,我可以添加新的Faculty在college属性中的任何价值。 如果我没有3000学分的大学,我仍然可以添加它,但college属性不会出现在我列出所有院系。 如何防止添加无效的大学ID教师?