Я новичок в node.js и выражаю, так что я хотел бы знать, что я делаю неправильно.
Я отправляю запрос от клиента с помощью $ .post и получаю его с помощью .post
однако страница "/ books", которая вызывается с помощью router.get, кажется, загружается до конца .post. после отладки кода я обнаружил, что .post конец
let incomingRequest;
let bookTitle = [];
let bookAuthors = [];
let bookSmallThumbnail = [];
router.post('/data/books', function (req, res) {
incomingRequest = req.body.book;
console.log(incomingRequest);
});
function getData(cb) {
request({
url: `https://www.googleapis.com/books/v1/volumes?q=${incomingRequest}`,
json: true,
},
console.log('passed Request'),
function (error, response, body) {
if (response.statusCode === 200) {
cb(body);
}
body.items.forEach(item => {
bookTitle = bookTitle.concat(item.volumeInfo.title);
bookAuthors = bookAuthors.concat(item.volumeInfo.authors);
if (item.volumeInfo.imageLinks !== undefined && item.volumeInfo.imageLinks !== null) {
bookSmallThumbnail = bookSmallThumbnail.concat(item.volumeInfo.imageLinks.smallThumbnai);
}
})
});
}
module.exports = {
getData: getData
}
router.get('/books',function (req, res) {
getData(function getData(books) {
res.render(path.join(__dirname, '../Client/books'), {
bookTitle: bookTitle,
bookAuthors: bookAuthors,
bookSmallThumbnail: bookSmallThumbnail
});
})
})
сначала, а затем .get выполнить. но каждый раз, когда я запрашиваю новую книгу, сначала загружается страница / книги, а результата нет, если я не обновляю страницу, а затем отображаются данные.
я использую ejs для отображения возвращаемых данных
вот фрагмент кода из моего кода: