我有一个MySQL数据库,我需要从node.js
查询我正在使用书架和knex。
我想获取表的内容 - 我在model.js文件中定义了一个表。我正在尝试这样的查询:
CollectionBase {
model:
{ [Function]
NotFoundError: [Function: ErrorCtor],
NoRowsUpdatedError: [Function: ErrorCtor],
NoRowsDeletedError: [Function: ErrorCtor] },
length: 1,
models:
[ ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c4',
id: 1 } ],
_byId:
{ '1':
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c4',
id: 1 },
c4:
ModelBase {
attributes: [Object],
_previousAttributes: [Object],
changed: {},
relations: {},
cid: 'c4',
id: 1 } },
_knex: null,
_events: {},
_eventsCount: 0 }
我想知道如何循环resData,因为它应该是多行。
控制台的输出如下所示:我没有看到可以循环的行列表..我缺少什么?
{{1}}
答案 0 :(得分:20)
我找到了答案(文档非常含糊,希望这有助于其他人)
new Model.CompletedSentences().fetchAll().then(function (resData) {
_.each(resData.models, function (model) { //I am looping over models using underscore, you can use any loop
console.log(model.attributes)
})
})
答案 1 :(得分:11)
Model.CompletedSentences.fetchAll().then(function (resData) {
console.log(resData.serialize())
})
输出为json格式
答案 2 :(得分:5)
Collection
类有一组lodash方法。
您可以这样使用collection.forEach
:
new Model.CompletedSentences().fetchAll().then(function (completedSentences) {
completedSentences.forEach(function (model) {
console.log(model.attributes)
})
})
查看docs,Collection
还有许多其他有用的方法。
答案 3 :(得分:3)
如果你不想使用lodash,你可以这样做:
new Model.CompletedSentences().fetchAll().then(function (resData) {
resData.models.forEach( function (model) {
console.log(model.get('attribute');
console.log(model.related('sth').get('attribute');
})
})
答案 4 :(得分:0)
只需使用它来控制属性。
console.log(resData.attributes);
你将获得对象vise的结果。
答案 5 :(得分:-2)
答案很简单,试试吧
console.log(resData.toJSON())