1

我尝试使用环回和远程 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 },
...
]

它计算正确的实体数量。

此代码没有微调的效果:

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);
})

显示正确的方案

我哪里错了?

4

1 回答 1

0

通过此代码:

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

我创建了一些没有在任何地方使用的对象(模型定义?)。此外 creator 是一个基本的“类”环回,而不是实例化的应用程序app。而这段代码:

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);
于 2014-06-30T21:05:35.173 回答