Необходимо получить все теги и их данные:
tagsController.get = function(req, res, next) {
tags.getTags(0, -1, function(err, tags) {
if (err) {
return next(err);
}
var data = {
tags: tags,
title: '#'
};
res.render('tags', data);
});
};
Обращаемся к функции
getTags
и получаем теги, а также значения к каждому из них:
Tags.getTags = function(start, stop, callback) {
db.getSetMembers('tags:id', function(err, tags) {
if (err) {
return callback(err);
}
// console.log(tags) = [ '1', '2', '3' ]
tags.forEach(function(tag) {
async.parallel({
id: function(next) {
db.getObjectField('tag:' + tag, 'id', next);
},
tagname: function(next) {
db.getObjectField('tag:' + tag, 'tagname', next);
},
tagslug: function(next) {
db.getObjectField('tag:' + tag, 'tagslug', next);
}
}, function (err, results) {
if (err) {
return callback(err);
}
callback(null, results);
});
});
});
};
В конечном итоге должно получиться примерно следующее:
"data.tags":[{"id":1,"tagname":"","tagslug":""},{"id":2,"tagname":"","tagslug":""},{"id":3,"tagname":"","tagslug":""}]
Но выдаёт ошибку
Can't set headers after they are sent.
Как это сделать правильно?