У меня есть следующий код в koa.jsКак работает koa.js?
var koa = require('koa');
var app = koa();
var mysql = require('mysql');
app.use(function *(next) {
console.log('A');
yield next;
console.log('E');
});
app.use(function *(next) {
console.log('B');
yield next;
console.log('D');
});
app.use(function *(next) {
var rowCount;
console.log('C');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'pass',
database : 'db1'
});
connection.connect();
connection.query('SELECT * from itemcategory', function(err, rows, fields) {
if (err) throw err;
console.log('The solution is: ', rows);
rowCount = rows;
console.log('The rowCount is: ', rowCount);
});
this.body = "we are good!.." + rowCount ;
connection.end();
});
app.listen(3000);
Переменная печатает ROWCOUNT не определено в браузере. Но внутри connection.query он печатает все строки. Кроме того, выход в консоли
PS J:\proj\pg> node --harmony .\app.js
A
B
C
D
E
The solution is: [ { categoryno: 0, categoryname: 'PESTICIDES', categorystatus: 0 },
{ categoryno: 1, categoryname: 'SEEDS ', categorystatus: 0 },
{ categoryno: 2, categoryname: 'FERTILIZERS', categorystatus: 0 },
{ categoryno: 3, categoryname: 'OTHERS', categorystatus: 0 } ]
The rowCount is: [ { categoryno: 0, categoryname: 'PESTICIDES', categorystatus: 0 },
{ categoryno: 1, categoryname: 'SEEDS ', categorystatus: 0 },
{ categoryno: 2, categoryname: 'FERTILIZERS', categorystatus: 0 },
{ categoryno: 3, categoryname: 'OTHERS', categorystatus: 0 } ]
В соответствии, например, в Коа он должен печатать строки, а затем только D и Е, но БД строки печатаются после того, как D и E.
Если db удаляется, а затем печатает в правильном порядке. Я бегу с флагом гармонии.
Пожалуйста, расскажите мне, в чем проблема?