我正在使用sails.jswaterlineorm。现在这不是一个特别的sails问题,但我必须放置一些上下文,所以当你创建一个记录时,你会得到一个包含创建数据的对象。如果该记录关联了其他记录(集合),则它具有与返回对象中的记录相关的键,但这些键是getter/setter,即使这些相关对象没有数据。我简化了一些事情只是为了揭示要点。这是我的用户模型:varUser={attributes:status:{type:'string'}images:{collection:'Image'}}假设,我在一个用户模型上执行了一个创建查询,该模型关联了一个图像集合。userRecord是查询返
鉴于一个用户可以有多个帐户,一个帐户可以有多个用户,一个帐户始终有一个所有者。有没有更好的方法用Waterline查询语法来编写它?User.findOneByEmailAddress('user@acme.com').then(function(user){User.findOne(user.id).populate('accounts',{owner:user.id}).then(console.log);});如果可能的话,我想我更喜欢这样的东西:User.findOneByEmailAddress('user@acme.com').populate('accounts',{ow
我在Sails.js中测试了以下Employee.js模型,我发现了一些我似乎难以理解的东西。当发布用于创建新员工的表单时,我在Employee.js模型的第一个定义中遇到以下错误,但Employee.js的第二个定义有效。那么Employee.js的两种定义有什么区别呢?错误:Error(E_VALIDATION)::3attributesareinvalidatWLValidationError.WLError(/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/error/WLError.j
似乎Sailsjs/Waterline当前不支持POINT类型或使用JSON的地理空间索引。是否有任何方法可以为某些适配器自定义架构以支持地理空间数据类型?如果没有,是否有办法将第二个ORM集成到Waterline中? 最佳答案 在Sails.js中,您需要MongoDB(npminstall--savesails-mongo)进行地理空间索引,另外您需要确保在config/bootstrap.js中创建2dindex(确保替换模型名称和属性名称满足您的特殊需求):module.exports.bootstrap=function(
我想用mocha测试我的Trails.js项目的模型。我用trailpack-waterline将我的模型加载到WaterlineORM中。追随足迹Docs我创建了一个User.test.js:'usestrict'constassert=require('assert')describe('UserModel',()=>{letUserbefore(()=>{assert(global.app.models.User)User=global.app.models.User})it('shouldexist',()=>{assert(User)})})这运行没有任何错误。但我无法以任何
我想创建一组在我的所有Sails.js模型之间共享的自定义属性和生命周期方法。Sails.js通过调用Waterline.Collection.extend()方法并提供在/api/models中找到的模型定义来自动创建和注册模型对象目录。从父项扩展我的模型定义的最佳方式是什么?我已经尝试使用_.extend(sails.config.model.parentModel,childModel)但遗憾的是sails对象没有全局公开(因为这是在加载orm之后完成的)钩)。我也可以简单地require()我所有模型中的基本模型并扩展它。什么是适合Sails的简洁方法?
我已经建立了一个带有2个实例方法的简单模型。如何在生命周期回调中调用这些方法?module.exports={attributes:{name:{type:'string',required:true}//InstancemethodsdoSomething:function(cb){console.log('Letstry'+this.doAnotherThing('this'));cb();},doAnotherThing:function(input){console.log(input);}},beforeUpdate:function(values,cb){//Thisdoe
我刚刚从npm下载了Waterline。我有一些文件夹,但找不到在哪里可以设置主机/用户/密码等来连接我的postgress数据库。我看了水线文件夹中的所有文件,什么也没有。谁能告诉我在哪里设置它? 最佳答案 Waterline当前状态是Sails的一个子项目框架。您要搜索的是放置数据库配置的常规位置。当使用Waterline作为Sails的一部分时,此约定将通过Sails自动要求配置文件到全局sails对象中的方式来定义。当单独使用Waterline时,您必须自己处理这部分:您想要Bootstrap并将您的配置显式传递到water
在Sails.js中,通过生成模型和Controller为您完成了大量工作。Controller允许通过API访问数据。它允许通过传递开始/跳过/偏移量和获取/限制来轻松分页。但是为了确定集合的最大页数,我需要知道集合中有多少项。我尝试扩展生成器中的蓝图以公开新的API方法count并创建计数操作。根据Waterlinedocumentation,count是可以在模型上调用的Action。当我调用User.count()时,我得到了这个:{_context:{identity:'user',adapter:{syncable:false,defaults:[Object],regis
我知道Sails.js/Waterline中还没有填充深层嵌套关联的内置方法,所以我尝试使用bluebirdpromises来完成它,但我遇到了问题。我成功地检索了用户,以及与之关联的所有帖子(填充有图像集合)(console.log显示所有内容都已正确填充)。但是,当我覆盖用户的属性“post”并尝试分配之前检索到的完全填充的帖子时,它没有正确填充Post.js的图像属性。这就像ORM阻止手动分配Post.js的图像集合。我做错了什么?填充深层嵌套的一对多关联的最佳方式是什么?下面我粘贴了我正在执行的所有代码....//Populatenestedassociationnested: