Tag: 水线

自定义适配器在v0.10版本中失败

我的适配器无法在Sails v0.10中注册。 从我可以在文档中看到,registerCollection()仍然是应该处理收集注册的适配器方法。 但是,sails抱怨说适配器与当前版本(0.10.0-rc4)不兼容。 错误:这是一个有效的帆/水线适配器? 遇到以下错误:: 错误:适配器与当前版本的Sails不兼容。 这很奇怪,因为我通过sails sails generate adapter命令创build了使用v0.10的sails generate adapter 。 任何人有任何想法在这一个?

有没有更好的方法来避免重复的生命周期callback?

水线允许模型上的一些生命周期callback,如下所示… beforeValidation / fn(values,cb) beforeCreate / fn(values,cb) afterCreate / fn(newInsertedRecord,cb) beforeValidation / fn(valuesToUpdate,cb) beforeUpdate / fn(valuesToUpdate,cb) afterUpdate / fn(updatedRecord,cb) beforeDestroy / fn(criteria,cb) afterDestroy / fn(cb) 但是,如果我想在创build和更新之前采取行动呢? Rails有一个beforeSave ,这非常棒。 在sails.js中有类似的东西吗? 我可以有两个callback调用一个函数,但我想确定没有更好的方法。

SailsJS v0.10由许多协会查找模型

我一直在享受v0.10中新的Sails关系,但是我目前面临的最大挑战是通过他们的协会来查找模型。 如果我已经填充了一个手动关联,比如一个ID数组,这将会非常容易。 但是,我似乎无法find用Sails关联来处理查找的正确方法。 我提供了一些示例代码,概述了两个模型,一个公司和一个用户。 公司可以有很多用户,而一个用户只能有一个公司。 这是一个非常简单的一对多关系,目标是find与用户ID匹配的所有公司。 ## Company.js name: type: 'string' required: true users: collection: 'User' via: 'company' ## User.js company: model: 'Company' required: true last_name: type: 'string' required: true first_name: type: 'string' required: true ## Lookup Users by Company ID of '2' User.find(where: company: 2).exec(console.log) # Result # [] – Array of users matching […]

限制在Sails.js模型中设置的字段

所以我有一个像这样的字段的模型: // … slug: { type: 'string', required: true, alphanumeric: true, minLength: 3, maxLength: 16 }, loggedinAt: 'date', // … 我正在使用Sails蓝图结构,以便自动映射所有内容。 但是,有时我有像loggedinAt严格内部的字段,我不希望他们能够由用户设置。 如果我使用loggedinAt字段发布post请求,它将会设置它。 我怎样才能限制呢?

在postgresql函数中使用libphonenumber库

我需要parsingpostgresql函数中的电话号码。 我正在使用水线ORM,基本上是在JavaScript中做这个计算。 现在我想把整个逻辑移到postgresql存储的函数中。 但瓶颈是libphonenumber库的可用性。 它在Node.js中可用,但不知道如何在postgresql中使用它。 任何想法 ?

水线0.10.14 + express – beforeCreate不执行

我想在我的用户模型上有一个密码,但在创build被调用之前从来没有看到。 使用Express 4.2和水线0.10.14。 用户模式: var Waterline = require('waterline'), uuid = require('uuid'), bcrypt = require('bcrypt'); var User = module.exports = Waterline.Collection.extend({ identity: 'user', connection: 'default', autoPK: false, // prevents creation of the id schema: true, types: { // Custom Validation – https://github.com/balderdashy/waterline-docs/blob/master/models.md#custom-validations }, attributes: { uuid: { type: 'uuidv4', primaryKey: true, defaultsTo: uuid.v4 }, first_name: { […]

Sails.JS findOne不返回Association

我有一个函数可以根据地理坐标查找资源,但是findOne方法不会返回模型中的注释集合。 如果我使用蓝图路线根据ID查找,我会收到评论。 find:ID JSON { "comments": [ { "text": "Some Text", "nomination": "551865064a5ccf41274be682", "createdAt": "2015-03-29T21:02:10.586Z", "updatedAt": "2015-03-29T21:02:10.586Z", "id": "55186852d21850a627292db3" } ], "name": "Karma Bird House", "address": "47 Maple Street Burlington, VT 05401", "geo": "44.473231,-73.217882", "lat": 44.473231, "lon": -73.217882, "streetImg": "http://maps.googleapis.com/maps/api/streetview?size=800×300&location=44.473231,-73.217882", "votes": 1, "createdAt": "2015-03-29T20:48:06.109Z", "updatedAt": "2015-03-29T21:02:48.817Z", "id": "551865064a5ccf41274be682" } findGeo:id JSON { "nom": { "name": […]

在水线中使用不同的列作为默认值

在我的cjdnsIp应用程序中,我有一个具有属性cjdnsIp和adminIp的模型。 现在我想要adminIp字段与cjdnsIp相同,如果没有指定其他值。

SailsJS水线中的“不包含”查询

如何创buildnot contains查询,返回true,如果该项目不包含一定的值。 如果它是相关的,我正在运行mongoDB。 当我介绍的时候我可以成功使用contains而not接收错误。 我已经尝试了与find和where但两次得到相同的正则expression式错误。 如果相关,我可以添加确切的错误。 工作版本: model.find({attribute: {'contains': value}}) .exec(function(err, users) { // happy code }); 以下抱怨一些正则expression式错误: model.find({attribute: {not: {'contains': value}}}) .exec(function(err, users) { // sad code }); 2013年有一个关于这个问题提出和closures的问题。 也许最近有什么改变? https://github.com/balderdashy/waterline/issues/22

风帆水线大文件PostgreSQL

我想在postgreSQL数据库下保存大文件(5Go max),不要问我为什么我的老板想要,即使我说这是一个坏主意。 所以现在我必须find一个可行的解决scheme。 现在我正在尝试这个: var file = req.file("largeFile"); file.upload({maxBytes : 1073741824 },function (err, uploadedFiles) { if (err) { return res.serverError(err); } var fs = require("fs"); if (uploadedFiles.length > 0) { var file = uploadedFiles[0]; fs.readFile(file.fd, function (err, data) { if (err) { return res.serverError(err); } var largeFile = {name : "testFile", data: data}; LargeFile.create(largeFile).exec(function created […]