작동하지 않습니다 내가 가진 로그에서ExpressJS() 내가 전에 여러 콜백이 다음 내가 JSON API를 구축하기 위해 res.send을()하고 싶은
app.get('/api', function (req, res){
...
function logPagesId() {
console.log("load: " +pagesId);
console.log("lenght: " +pagesId.length);
findWords(logWords);
}
function logWords() {
console.log("TAGS: "+wordsArray);
return res.send(wordsArray);
}
findIdPages(logPagesId);
}
을 :
Successfully connected to MongoDB
load: 45678bdhbdns768,45678bdhbdns765
lenght: 2
TAGS:
{ _id: 45678bdhbdns765,
result:
{ ID1: { Pages: [Object], Name: [Object] },
ID2: { Pages: [Object], Name: [Object] },
....
결국 []을 반환합니다.
[EDIT]
[FULL CODE 여기서
app.get('/tags/reference/:reference', function (req, res){
var articlesId = [];
var tagsArray = [];
function findIdArticles(callback) {
Articles.find({reference: req.params.reference}, '_id' , function (err, articles) {
if (!err) {
for (var i = 0; i < articles.length; i++) {
articlesId.push(articles[i]._id);
}
for (i=0 ; i < articlesId.length; i++){
Extract_Tags.findById(articlesId[i], function (err, tags) {
if (!err) {
tagsArray.push(tags);
console.log(tags);
callback(null, tagsArray);
} else {
callback(err);
}
});
}
} else {
callback(err);
}
});
}
function logArticlesId(err, response) {
res.status(503).send('fancy server side error message!');
console.log("load: " +articlesId);
console.log("tagsArray: " +tagsArray);
console.log("response: " +response);
logTags(response);
}
function logTags(response) {
console.log("TAGS: "+response);
res.send(response);
}
findIdArticles(logArticlesId);
});
일부 변경 전체 코드이다. 그냥 오류가 멋진 서버 쪽 오류 메시지가! 감사합니다.
예상대로 작동하지 않는 기능은 무엇입니까? 문제를 해결하기 위해 무엇을 시도 했습니까? 어떤 익스프레스 버전을 사용하고 있습니까? 던진 오류는 무엇입니까? 매우 많은 질문, 너무 적은 정보. -1 – Sprottenwels
JSON을 반환하지만 빈 배열 []을 반환합니다. 내가 간단한 것을하면 res.send()가 작동한다. 그러나 함수에서 함수를 사용할 때 나는 잘못 생각하고 있다고 생각합니다. – Jose
당신이 엉망이되었습니다. FindIdPages 함수는 어디에 있고 무엇을합니까? – Jarema