Для моего проекта я использую Node.js с express.js и redis.io как базу данных. Теперь у меня есть ресурс get с параметром запроса. Он должен дать мне идентификаторы библиотек, которые содержат определенную книгу. Но я не понимаю порядок обработки моей программы. Как вы можете видеть в приведенном ниже коде, я печатаю библиотеки Array 3 раза на консоль.Node.js | Express.js | Redis.io - Порядок обработки
var express = require('express');
var bodyParser = require('body-parser');
var redis = require('redis');
var db = redis.createClient();
var jsonParser = bodyParser.json();
var app = express();
app.use(jsonParser);
app.get('/test', function (req, res) {
if (req.query.book != null) {
var book_id = req.query.book;
var libraries = [];
db.get('book:' + book_id, function (err, rep) {
var book = JSON.parse(rep);
var libs = book.libraries;
libs.forEach(function (val) {
libraries.push(val.id);
});
console.log("1.: " + libraries);
});
console.log("2.: " + libraries);
}
console.log("3.: " + libraries);
});
app.listen(1337);
И это результат в моей консоли:
2 .:
3 .:
1 .: 1,4
Может кто-то объяснить? И почему мой массив является emtpy в точках 2 и 3?