我尝试使用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);
})
显示正确的方案
我哪里错了?
答案 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);