loopback postgresql仅提取“id”字段

时间:2014-06-17 16:11:25

标签: postgresql select loopbackjs

我尝试使用loopback和远程postgresql数据库创建一个项目。 表已填写,我在pgAdmin中看到。

我有这段代码:

/models/language.js

var loopback = require('loopback'),
 app = require('../app');


loopback.createModel('languages', {
 id: Number,
 des_id: Number,
 iso: String,
 codepage: String
})


app.model('languages', { dataSource: 'pg' });

(我不同意使用一个文件存储所有模型定义的概念。但我同意LDL很酷!^ _ ^)

“loopback-explorer”成功地展示了我的REST用于新模型。但是当我尝试获取某些东西时,它只选择“id”字段。

[ { id: 1 },
  { id: 4 },
  { id: 6 },
  { id: 7 },
  { id: 8 },
  { id: 9 },
...
]

它计算正确的实体数量。

此代码对fintering无效:

app.models.languages.find({
  where: {'des_id': 14360}},
 function(err, langs) {
 console.log(langs)
 });

我获得与之前输出相同数量的数据。

我试过这个

app.models.languages.find({
    fields: {id: false}
  },
  function(err, langs) {
    console.log(langs)
  });

效果相同。

我尝试创建没有属性防御的模型:

loopback.createModel('languages', {})

效果相同。

app.datasources.pg.discoverModelProperties('languages', function(err, props) {
  console.log(props);
})

显示正确的方案

我哪里错了?

1 个答案:

答案 0 :(得分:0)

通过此代码:

loopback.createModel('languages', {
    ...
})

我创建了一些在任何地方都没有使用的对象(模型定义?)。创作者也是一个基础"类" loopback 而非实例应用应用。 这段代码:

app.model('languages', { dataSource: 'pg' });

创建了可在app.models中使用但没有任何架构定义的新模型。这就是为什么我只有id-s而没有其他领域。

正确的方式:

var loopback = require('loopback'),
    app = require('../app');

var Langs = app.datasources.pg.createModel('languages', {
    ...
})

app.model(Langs);