标签: waterline

如何使用MEAN和sails.js启动一个新项目

我在过去创建了一个带有node.js,express和angular.js的Web应用程序.我正在开始一个新项目,我也想使用MongoDB.这将是MEAN堆栈.使用MEAN,我可以用这个开始一个项目:http://mean.io/.

现在,我已经编写了REST API,我听说sails.js听起来非常引人注目.它可以自动为您创建REST API.

所以我的问题是,我将采用哪些步骤来启动MEAN堆栈和sails.js的新项目

选项:

  1. 我会克隆mean.io堆栈,运行npm install,然后是npm install sails.js吗?
  2. 或者,似乎sails.js有自己的想法,为目录结构做什么.那么我会按照他们的说明安装sails.js http://sailsjs.org/#!getStarted然后npm安装Angular和Mongo?(我想我不需要Mongoose,因为sails.js有自己的ORM,水线).

我今天实际上会尝试选项2,但我很高兴知道哪些步骤对其他人有效.

非常感谢你!

mongodb node.js angularjs sails.js waterline

14
推荐指数
1
解决办法
4824
查看次数

Sails.js/Waterline级联删除多对多关联

堆栈溢出答案所示,在Waterline中不支持级联(特别是级联删除),通过使用(或用于软删除)生命周期回调并删除相关记录,可以解决一对多关联问题.第二个查询.这可以通过内部实现.afterDestroyafterUpdateManyModel.destroy({ oneModel: _.pluck(destroyedOneModels, "id") })afterDestroy

我们如何为多对多关系做到这一点(考虑到内部使用联结表,我们必须从中删除记录)?

cascading-deletes sails.js waterline

14
推荐指数
1
解决办法
3594
查看次数

水线ORM(sails.js)"在哪里或"查询

我想知道如何在水线查询中添加"OR"条件.应该是这样的:

User.find().where({

    score: { '>': req.params.score},
    status: 'user'
    OR
    status: 'admin'


}).exec(function(err, data){
    ...
});
Run Code Online (Sandbox Code Playgroud)

所以我们有两个条件:

1)得分>具体数字

2)status = user

要么

1)状态= admin.

javascript orm sails.js waterline

13
推荐指数
1
解决办法
2万
查看次数

如何使用sails在控制台日志中显示查询?

我正在启动一个带有sails和mysql的项目,我不知道如何配置它以显示在控制台中执行的查询.

node.js sails.js waterline

13
推荐指数
3
解决办法
8847
查看次数

在SailsJS api之外使用Waterline模型

是否可以使用[app-name]/api/models外部api文件夹中定义的模型?

我在应用程序根目录中创建了单独的文件夹,在那里我放置了应该每小时填充数据库的cron作业.我想重用我的api文件夹中定义的模型,但不知道如何做到这一点.

我看到我可以sails.lift在那个cron脚本里面做,但这对我来说似乎不太好.

有人经历过类似的事吗?我是node.js的新手,所以也许我错过了一些非常明显的东西.

sails.js waterline sails-mongo

13
推荐指数
1
解决办法
1595
查看次数

链接水线呼叫与Promises

在过去的3天里,我一直在我的头上撞墙.

我正在使用sailsjs和捆绑的水线ORM.我想一个接一个地运行数据库调用.我知道我可以通过嵌套"then"调用来做到这一点,但它只是看起来不对.

我已经多次查看了Q文档和教程,但我仍然没有得到如何连接并从现有的Promises中依次点击"then"调用:(

我想要:

  1. 创建用户
  2. 创造一个动作
  3. 链接用户和操作
  4. 更新用户
  5. 更新动作

我的代码看起来像

 var mail = 'test@test.com';

 Users.create({email:mail, name:''}).then(console.log).fail(console.log);

 Actions.create({actionID:123})
 .then(function(error, action){
        Users.findOneByEmail(mail).then(function(person){
            person.actions.add(action.id);
            person.save(console.log);
        }).fail(console.log)  
     });

 Users.update({email:mail},{name:'Brian'}).exec(console.log);
 Actions.update({actionID:123},{now:'running'}).exec(console.log);
Run Code Online (Sandbox Code Playgroud)

正如你从代码中看到的那样,我一直在使用exec然后混合:P

我认为方法是连接Users.create(...).然后 - > Action.create(...).然后 - > Users.findOneByEmail(...).然后 - >*和更新.

非常感谢任何帮助

orm promise q sails.js waterline

13
推荐指数
1
解决办法
3753
查看次数

将sails.js与现有的postgres数据库一起使用

我正在考虑将Sails用于我们正在开发的应用程序.

我正在使用使用水线orm的sails-postgresql适配器.

我有一个我想连接的现有数据库.

如果我使用创建模型 generate something

然后在我的模型中我有

attributes:{
    title:{type:'String'}
}
Run Code Online (Sandbox Code Playgroud)

如果我浏览到localhost/something,orm将删除something表中除title之外的所有列.

有没有办法阻止它这样做?此应用程序不应删除此数据库上的列.

谢谢!

postgresql node.js sails.js waterline sails-postgresql

12
推荐指数
1
解决办法
6295
查看次数

带有Sails.js的事务SQL

所以我现在一直在玩NodeJS/Express,我真的想尝试使用完整的JavaScript堆栈来重写一个相对较大的副项目,看看它是如何工作的.对于支持Web套接字的REST API的NodeJS后端,Sails.js似乎是一个非常好的选择,这正是我正在寻找的,但是我希望解决的另一个问题是NodeJS中的事务性SQL.

我在NodeJS方面看到的大多数数据层/ orms在处理MySQL时似乎不支持事务.与Sails.js(Waterline)一起提供的ORM似乎也不支持奇怪的交易,因为我已经看到了它所提到的地方尽管这些评论已经很老了.Knex.js支持事务,所以我想知道是否很容易用这个替换ORM是Sails.js(或者如果Sails.js在核心框架中假定了Waterline).

我还想知道除了Bookshelf之外是否还有一个基于Knex.js构建的ORM,因为我不是Backbones Model/Collection系统的粉丝?

transactions node.js sails.js waterline

12
推荐指数
2
解决办法
5327
查看次数

Sails.js通过id查找多个数据库条目

我对node.js/sails.js有点新意,并且想知道(如果可能的话)如何通过搜索它们的id来检索多个数据库条目 - 在MongoDB文档中提到了类似的内容:

db.inventory.find( { qty: { $in: [ 5, 15 ] } } )

这是我尝试过的:

// users param example: 12341243124, 1231231231, 21312313212
var users = req.param('users').split(',');

User.find({id: { $in: users }}, function (err, response) {
  // do something here
});
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!谢谢!

javascript mongodb node.js sails.js waterline

12
推荐指数
1
解决办法
7986
查看次数

从数据库中选择特定字段

我只想知道是否可以使用水线选择特定字段,下面给出了orientdb查询.

e.g. 
select phone from user
Run Code Online (Sandbox Code Playgroud)

我想通过使用此查询从用户顶点选择手机

userModel.find(phone)
.then(function(phonelist){ 
  if(!phonelist) 
     console.log('msg: RECORD_NOT_FOUND'); 
  else 
     console.log(phonelist);
.catch(function(err){ console.log('err: 'err'); });
Run Code Online (Sandbox Code Playgroud)

waterline sails-orientdb

12
推荐指数
1
解决办法
1万
查看次数