我正在尝试将数据发布到数据库。然后在数据库中查询最后3个条目。然后将所有数据发送到ajax / console.log。
但是如果我在第一次点击按钮时清空数据库集合,它会抓取并将数据发布到mongodb集合,但是res.send会在完成之前发送一个空的json数组,因此consolelog为空并且html显示为空白。
(注意:我在第一次按下按钮后检查确保里面有数据:我认为它可能没有抓住最新的现有数据,而不是那些刚被推入收集数据库的数据 ex id3-6而不是id7-9,我一次上传新闻文章3,所以当我测试标题时每次都是重复的。
当我第二次点击它时,它已经在数据库中等待数据,因此,它将加载并显示数据,但不确定为什么承诺不起作用。此决心也在起作用。
const express = require('express');
const {grabArticles} = require('../controller/scrapper.js');
const Article = require('../models/articles');
const Current = require('../models/current');
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
// const Comments = require('../models/comments');
// variables
const router = express.Router();
router.get('/api/fetch', (err, res) => {
const promiseInfo = new Promise((resolve, reject) => {
if ( grabArticles() === undefined ) {
console.log('hurrayyyy');
resolve();
} else {
console.log('oh nooooooo!');
reject();
}
});
promiseInfo.then(() => {
Current.find({}, 'topic title', (err, data) => {
}).limit(3)
// gives the last three articles saved in current models
.sort({createdAt: 'desc'})
.then((data) => {
res.send({response: data, total: 'Articles were found!'});
// console.log(data);
})
});
});