Articles of sails.js waterline

Sails-mysql拒绝注册连接

我在AWS实例上安装了Sails应用程序,并安装了所有依赖项,但没有出现明显的问题。 但是,每次我尝试启动应用程序,我收到以下错误。 error: AdapterError: Connection is already registered 我还没有设法成功地提升帆上的实例和sails-mysql是新鲜安装的,所以不应该注册连接。 我采取了以下步骤来部署我的应用程序.. 设置一个MySql RDS实例(EU-West) 创build并build立了Ubuntu AMD-64 t2.micro EC2实例(EU-West) 安装了所有先决条件(Git,NVM,NodeJs,Sails等) 克隆我的帆船项目 安装了Sails的依赖关系 正确configurationSails的连接设置以使用我的RDS实例。 我知道我的连接设置是正确的,因为我已经能够在我的本地机器上运行Sails并连接到我的RDS实例,并且始终能够毫无问题地解除连接。 我也可以使用SequelPro连接到我的RDS实例,没有任何问题。 过去我曾经遇到过依赖关系的问题,但是设法解决了这些问题,并且没有在我的本地机器上或者EC2实例上。 在search了一段时间之后,我遇到了一些有类似问题的用户,但是用Waterline的拆解方法设法解决了这些问题,但我不确定如何实现这一点。 我已尽力提供尽可能多的信息,任何帮助都将受到大力赞赏。 风帆版本: 0.12.11 先谢谢你。

sails.js一对多的关系 – variables所有者集合属性

在sailsjs.org的文档中,拥有一方的一对多关系是这样定义的 //user.js module.exports = { attributes: { name:'STRING', age:'INTEGER', pets:{ collection: 'pet', via: 'owner' } } } “pet”是一个常量,在SQL数据库上有一致的模式。 如果我想拥有一个超类宠物和具有独特属性(不同行数)的子类呢? 说我有一只章鱼和一只狗。 狗有4条腿和2个耳朵。 章鱼有8个触手。 唯一的共性将被抽象成宠物类(颜色,名字,年龄)。 如果这是不可能的,我将不得不诉诸这样的事情? //user.js module.exports = { attributes: { name:'STRING', age:'INTEGER', dogs:{ collection: 'dog', via: 'owner' }, octopuses:{ collection: 'octopus', via: 'owner' } } } 然而,如果我想介绍更多的宠物,如鹰(可以飞),鹦鹉(可以说),这可能会相当混乱,如果我要使用SQL数据库会导致许多空值。 也许mongoDB会是理想的呢?

async.series函数没有完成

我正面临一个奇怪的问题与async.js 。 我正在解释整个场景。 我在数据库中有两个表。 让一个是5行,另一个是2840行的Y 由于我的项目在sails.js我使用waterline作为ORM。 我在async.series运行三个函数。 第一个用于获取表X所有行,第二个用于获取表Y所有行。 在第三个函数中,我运行async.eachSeries遍历所有在第二个函数中获取的Y行,并调用一个外部的POST API。 所以整体stream程是, async.series([ function( callback1 ){ // Fetch all rows from `X` }, function( callback1 ){ // Fetch all rows from `Y` }, function( callback1 ){ async.eachSeries(allRowsOfY, function(item, callback2){ // Call an external POST api. }, function(err){ }); }, ], function( err ){ // Do something […]

二进制字段,水线ORM

我试图插入一个节点JS缓冲区对象表示的文件( MySQL中 )(在水线jstypes二进制), 当读它并写入一个文件,该文件已损坏,我实现了一个Java程序,更新包含该文件的表中的行,我读它和文件是完美的,写入数据库时​​出现问题, 在水线ORM中没有关于二进制字段的文件。 我如何解决这个问题? 我已经打开了这个问题,这可能是sails-mysql中的一个错误。 github上的问题

Sailjs-Waterline:序列化,分析和初始化一个模型

假设我find了使用下一个命令的用户: User.findOne(id).exec(function(err, user){ redis.set(JSON.stringify(user), id); }) 之后,我从redis加载我的对象 redis.get(id, function(err, reply){ if(!err && reply) { var user = JSON.parse(reply); // here methods like user.save() or any of defined manually by developer is unavailable // } else { .. } }) 用户模型示例: module.exports = { attributes : { // Simple attribute: // name: 'STRING', // Or for […]

水线的并行写入访问

我打电话给一个REST API来更新sails中的数据库条目。 因此,我有一个函数遍历一个JSON数组,并调用每个条目另一个函数,将值保存到数据库中。 function getData(){ for(index in apiJson){ saveData(apiJSON[index]); } } 在saveData函数中,我使用waterline的.find或者创buildfunction。 如果没有这样的条目,则创build一个新条目。 这一切工作相当好。 但是现在我想把新创build的条目(Table:match)的id追加到另一个表(Table:team)中的数组( matches )。 由于JavaScript的asynchronous行为,我得到了一些失败。 我的实现(简称)如下所示: Match.findOrCreate({..},{..}).exec(function(err,match){ … //if match was just created in db if(newMatch){ Team.findOrCreate({apiID: someTeamID}), { … …, matches: [] } ).exec(function(err,team){ team.matches.push(someID); team.save(function(err,s){ … }); }); } }); 由于JavaScriptasynchronous执行此代码,我得到了我的模型团队中的重复条目。 此外,我的数组matches模型团队不符合我的值在其他模型匹配。 我怎样才能序列化数据库写入访问,以防止这种行为? 有没有可能让循环并行运行,但数据库更新串行?

创build用户时,sailsJS中的id:null问题

我怀疑我的问题是愚蠢的,但我找不到错误。 我正在使用mongodb来保存用户数据。 似乎每一个工作正常,但是当我看数据库我有每个用户loggingid: null 。 我不想要那个id: null ,我已经有了_id字段。 $sails –version 0.11.0 我的userController: module.exports = { create: function(req, res) { User.create(req.params.all(), function userCreated(err, user) { if(err) res.json(401, err); res.json(200, user); }) } } 我的用户模式: module.exports = { attributes: { name: { type: 'string', required: true }, email: { type: 'string', email: true, required: true, unique: true […]

如何查找没有joinWaterline ORM的logging

我正在使用node.js框架,Sails JS,以及其内置的ORM Waterline for Tinder-like项目。 我不知道如何编写我的查询来获取未join的logging。 在我的情况下,当用户“喜欢”或“不喜欢”另一个用户的个人资料时,我希望喜欢的个人资料不再显示。 我如何做到这一点? 这是我迄今为止所尝试的: Cat.query('select cat.* from cat left outer join vote on cat.id = vote.owner where vote.owner is null AND cat.id !='+req.session.User.id, function (err, results) { if (err) return res.serverError(err); res.send('Yes'); console.log(results); });

在不使用主键的情况下,在js中填充一对多的关系

在sails / waterline文档中,一对多的每个示例代码假定主键是两个模型(我认为)之间的关联。 http://sailsjs.org/documentation/concepts/models-and-orm/associations/one-to-many 不过,我有模型有一个引用列引用一些其他值类似于 User { id (primary): <int> email: <string> } recordings { id (primary): <int> email: <that email from user> } atm即时通讯尝试 userModel.js { attributes: { email: { type: 'string', size: 255, unique: true }, }, queries: { columnName: 'email', model: 'recordings' } ….. } } recordingsModel.js { attributes: { email: { […]

如何创build与SailsJS中另一个模型的对象单向关联的对象列表?

我有模型Playlist.js和User.js。 我想在播放列表中有一个用户列表,他们可以回答他们的评论。 我不希望该属性出现在用户。 (即单向关联) Playlist.js module.exports = { attributes: { id: { type: 'integer', autoIncrement: true, primaryKey: }, name: { type: 'string', size: 128, required: true }, // many to many relationship with role roles_with_access: { collection: 'role', via: 'playlist', through: 'rolehasplaylist' }, // THIS ATTRIBUTE ASSOCIATE WITH ONE USER // BUT INSTEAD OF THAT […]