我正在考虑将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系统的粉丝?
我正在学习COBOL只是为了它的乐趣,现在想从我的COBOL源(使用GnuCOBOL)调用C函数.
我可以很好地调用C函数,但是我的函数有一个小问题,看起来像这样:(它只包含另一个具有相同参数的函数,现在)
int getSensors( char * protocol, int protocolLen,
char * model, int modelLen,
int * id, int * dataTypes ) {
return tdSensor(protocol, protocolLen, model, modelLen, id, dataTypes );
}
Run Code Online (Sandbox Code Playgroud)
我的问题是id变量中返回的值以后在COBOL中不可打印(下面的TSI-ID).例如,返回的值可以是67,如果我在COBOL中打印变量,我得到ascii字符'C'而不是预期值0067.
COBOL记录如下所示:
01 TELLSTICK-SENSOR-ITER.
05 TSI-PROTOCOL PIC X(50).
05 TSI-MODEL PIC X(50).
05 TSI-ID PIC 9(4).
05 TSI-DATATYPES PIC 9(4).
05 TSI-RETURN PIC S9(4).
Run Code Online (Sandbox Code Playgroud)
我的电话看起来像这样:
CALL "getSensors" USING
BY REFERENCE TSI-PROTOCOL BY VALUE 50
BY REFERENCE TSI-MODEL BY VALUE 50
BY REFERENCE TSI-ID
BY REFERENCE TSI-DATATYPES
RETURNING TSI-RETURN.
Run Code Online (Sandbox Code Playgroud)
我是COBOL的新手,我的C技能非常生疏,因为我通常在Java工作.我的代码中是否有明显的新手错误?
在Java中我可以这样做:
return a
&& b
&& c;
Run Code Online (Sandbox Code Playgroud)
在Groovy中,它返回一个编译错误:unexpected token: &&
.如果我return
在Groovy中省略关键字,也会发生这种情况.但是,如果我将语句包装在括号中,它可以正常工作.
在我读过的所有Groovy资源中,我被告知我应该能够在任何我想要的地方编写"直接Java".这是一个错误吗?如果没有,这个设计决定的原因是什么?
我看了这里,但没有找到这个问题.我知道有一些东西不能从Java继承,但这看起来不像是其中之一.
如何在Sails中为对象定义函数/实例方法?
在Waterline doc(https://github.com/balderdashy/waterline)中,他们说:
var User = Waterline.Collection.extend({
...
attributes: {
...
// You can also define instance methods here
fullName: function() {
return this.firstName + ' ' + this.lastName
}
},
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在Sails中的模型中的属性中定义实例方法时,该函数不会添加到对象中.难道我做错了什么 ?
环境:风帆(v0.8.94),节点(v0.8.16)
如何在水线中写出NOT Equal条件?
这段代码:
Users
.count()
.where({
id: { '!=': req.params.id},
lastname: req.body.lastname
})
Run Code Online (Sandbox Code Playgroud)
什么都不做......(sails.js中的磁盘适配器)
从SailsJS使用水线ORM,我对违约autoCreatedAt
和autoUpdatedAt
被设置为false,但我仍然需要实现的功能只是用不同的字段名(DBA请求).有没有办法:
created_ts
并updated_ts
在数据库模式本身中使用触发器进行更新(但我仍然需要Waterline来读取它们)?提前致谢.
水线是一个优秀的ORM,但我注意到有很多功能在水线上还没有,但Sequelize已经有了.所以我决定改用sequelize但仍然使用Sails来完成其他事情.我有搜索教程如何切换到续集但没有.如何在帆Js中替换Waterline for sequelize?
我想在我的模型中有数组或集合,这是否可以使用waterline(mongoDB)?周围有什么替代品吗?
例:
{
name: Bundle,
col1 : {
name : anOtherModel,
subCol: {
text: aString,
...
}
},
col2 : {
name : anOtherModel,
subCol: {
text: aString,
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
至:
module.exports = {
attributes : {
name : {
type : 'STRING',
required : true
},
basicModules: {
type : 'ARRAY', // or 'COLLECTION'
required : false
}
}
};
Run Code Online (Sandbox Code Playgroud) 因此,我对mocha完全不熟悉,并且我被要求编写集成测试,将表单数据发布到页面,获取身份验证密钥,然后对密钥运行测试.
我正确地获得了密钥,这可以通过我的日志声明来确认,但是当我运行mocha时,我的测试表示0传递.它甚至没有打印出'describe'和'it'语句的描述,暗示它们在promise中不起作用.有没有我可以这样工作,同时仍然让断言访问我的授权密钥?
require('should');
require('sails');
var Promise = require("promise");
var request = require('request');
describe('Domain Model', function(){
var options = { url:'link',
form:{
username: 'xxxxx@xxxxxx',
password: '0000'
},
timeout: 2000
};
//request auth key
var promise = new Promise(function(resolve,reject){
request.post(options, function(error, response, body){
//body contains the auth key, within a string of JSON
resolve(body);
});
});
//this is where I'm getting lost
promise.then(function(data,test){
var token = (JSON.parse(data))["access_token"];
console.log(token);
describe('Initialize',function(){
it('should be an string', function(){
(token).should.be.type('string');
});
});
});
});
Run Code Online (Sandbox Code Playgroud) sails.js ×8
waterline ×7
node.js ×6
javascript ×2
c ×1
cobol ×1
express ×1
function ×1
gnucobol ×1
groovy ×1
java ×1
mocha.js ×1
model ×1
orm ×1
postgresql ×1
promise ×1
sequelize.js ×1
should.js ×1
syntax ×1
transactions ×1