小编Tra*_*ebb的帖子

将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
查看次数

不可打印的整数指针从C库返回到GNU COBOL

我正在学习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工作.我的代码中是否有明显的新手错误?

c cobol gnucobol

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

Groovy与Java语法差异

在Java中我可以这样做:

return a
    && b
    && c;
Run Code Online (Sandbox Code Playgroud)

在Groovy中,它返回一个编译错误:unexpected token: &&.如果我return在Groovy中省略关键字,也会发生这种情况.但是,如果我将语句包装在括号中,它可以正常工作.

在我读过的所有Groovy资源中,我被告知我应该能够在任何我想要的地方编写"直接Java".这是一个错误吗?如果没有,这个设计决定的原因是什么?

我看了这里,但没有找到这个问题.我知道有一些东西不能从Java继承,但这看起来不像是其中之一.

java syntax groovy

11
推荐指数
2
解决办法
2179
查看次数

如何使用sails.js为模型定义实例方法

如何在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)

model function node.js sails.js waterline

11
推荐指数
1
解决办法
6960
查看次数

在查询中使用NOT Equal的水线ORM(sails.js)条件

如何在水线中写出NOT Equal条件?

这段代码:

Users
  .count()
  .where({
     id: { '!=': req.params.id},
     lastname: req.body.lastname
  })
Run Code Online (Sandbox Code Playgroud)

什么都不做......(sails.js中的磁盘适配器)

javascript orm node.js sails.js waterline

11
推荐指数
2
解决办法
9750
查看次数

是否可以在sails.js/waterline中重命名`createdAt`和`updatedAt`

从SailsJS使用水线ORM,我对违约autoCreatedAtautoUpdatedAt被设置为false,但我仍然需要实现的功能只是用不同的字段名(DBA请求).有没有办法:

  1. 为自动生成的字段指定不同的列名称,或
  2. 手动模拟属性定义中的相同行为,或
  3. 我可以在模式中保留自定义字段,created_tsupdated_ts在数据库模式本身中使用触发器进行更新(但我仍然需要Waterline来读取它们)?

提前致谢.

node.js sails.js waterline

11
推荐指数
1
解决办法
3841
查看次数

如何在SailsJs中使用Sequelize

水线是一个优秀的ORM,但我注意到有很多功能在水线上还没有,但Sequelize已经有了.所以我决定改用sequelize但仍然使用Sails来完成其他事情.我有搜索教程如何切换到续集但没有.如何在帆Js中替换Waterline for sequelize?

node.js express sequelize.js sails.js waterline

11
推荐指数
1
解决办法
5174
查看次数

在Sailsjs中是否有可能构建更复杂的模型

我想在我的模型中有数组或集合,这是否可以使用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)

sails.js waterline

10
推荐指数
1
解决办法
2830
查看次数

摩卡:承诺中的断言不起作用

因此,我对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)

javascript mocha.js promise should.js sails.js

10
推荐指数
1
解决办法
8189
查看次数