I have a MySQL Database which I need to query from node.js
I am using bookshelf and knex for this.
I want to get the contents of a table - I have defined a table in my model.js file. I am attempting the query like this:
//select * from completedSentences;
Model.CompletedSentences.fetchAll().then(function (resData) {
console.log(resData)
})
I would like to know how to loop over resData because it should be multiple rows.
The output of the console looks like this: I dont see a list of rows I can loop over.. What am i missing?
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 }
I found the answer (the documentation is very cryptic, hope this helps others)
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)
})
})
Model.CompletedSentences.fetchAll().then(function (resData) {
console.log(resData.serialize())
})
output is in json format
http://bookshelfjs.org/#Model-instance-serialize
The Collection
class has a set of lodash methods for this.
You can use collection.forEach
this way:
new Model.CompletedSentences().fetchAll().then(function (completedSentences) {
completedSentences.forEach(function (model) {
console.log(model.attributes)
})
})
Check out the docs, there are many other useful methods for Collection
.
If you dont want to use lodash, you can do this:
new Model.CompletedSentences().fetchAll().then(function (resData) {
resData.models.forEach( function (model) {
console.log(model.get('attribute');
console.log(model.related('sth').get('attribute');
})
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With