我在过去创建了一个带有node.js,express和angular.js的Web应用程序.我正在开始一个新项目,我也想使用MongoDB.这将是MEAN堆栈.使用MEAN,我可以用这个开始一个项目:http://mean.io/.
现在,我已经编写了REST API,我听说sails.js听起来非常引人注目.它可以自动为您创建REST API.
所以我的问题是,我将采用哪些步骤来启动MEAN堆栈和sails.js的新项目?
我今天实际上会尝试选项2,但我很高兴知道哪些步骤对其他人有效.
非常感谢你!
如堆栈溢出答案所示,在Waterline中不支持级联(特别是级联删除),通过使用(或用于软删除)生命周期回调并删除相关记录,可以解决一对多关联问题.第二个查询.这可以通过内部实现.afterDestroyafterUpdateManyModel.destroy({ oneModel: _.pluck(destroyedOneModels, "id") })afterDestroy
我们如何为多对多关系做到这一点(考虑到内部使用联结表,我们必须从中删除记录)?
我想知道如何在水线查询中添加"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.
我正在启动一个带有sails和mysql的项目,我不知道如何配置它以显示在控制台中执行的查询.
是否可以使用[app-name]/api/models外部api文件夹中定义的模型?
我在应用程序根目录中创建了单独的文件夹,在那里我放置了应该每小时填充数据库的cron作业.我想重用我的api文件夹中定义的模型,但不知道如何做到这一点.
我看到我可以sails.lift在那个cron脚本里面做,但这对我来说似乎不太好.
有人经历过类似的事吗?我是node.js的新手,所以也许我错过了一些非常明显的东西.
在过去的3天里,我一直在我的头上撞墙.
我正在使用sailsjs和捆绑的水线ORM.我想一个接一个地运行数据库调用.我知道我可以通过嵌套"then"调用来做到这一点,但它只是看起来不对.
我已经多次查看了Q文档和教程,但我仍然没有得到如何连接并从现有的Promises中依次点击"then"调用:(
我想要:
我的代码看起来像
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(...).然后 - >*和更新.
非常感谢任何帮助
我正在考虑将Sails用于我们正在开发的应用程序.
我正在使用使用水线orm的sails-postgresql适配器.
我有一个我想连接的现有数据库.
如果我使用创建模型 generate something
然后在我的模型中我有
attributes:{
title:{type:'String'}
}
Run Code Online (Sandbox Code Playgroud)
如果我浏览到localhost/something,orm将删除something表中除title之外的所有列.
有没有办法阻止它这样做?此应用程序不应删除此数据库上的列.
谢谢!
所以我现在一直在玩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系统的粉丝?
我对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)
任何帮助,将不胜感激!谢谢!
我只想知道是否可以使用水线选择特定字段,下面给出了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 ×10
sails.js ×9
node.js ×5
javascript ×2
mongodb ×2
orm ×2
angularjs ×1
postgresql ×1
promise ×1
q ×1
sails-mongo ×1
transactions ×1