#javascript #api #express #nunjucks
#javascript #API #экспресс #nunjucks
Вопрос:
При публикации страницы я пытаюсь ПОЛУЧИТЬ информацию из API, вернуть выходные данные и сохранить результаты, чтобы их можно было использовать на всех страницах. Метод, в котором вызывается API, не самый лучший, но это просто для проверки концепции, а не качества производства. Итак, вот код на данный момент:
router.post('/page-one/', function (req, res) {
var options = {
'method': 'GET',
'url': 'https://api.information.service.com/company/<value>',
'headers': {
'Authorization': 'Basic <key>'
}
}
request(options, function (error, response) {
if (error) throw new Error(error)
console.log(response.body)
})
res.redirect('/page-two/')
})
Итак, это работает нормально, консоль возвращает правильную информацию. Как бы я тогда взял это и использовал на всех страницах? Скажем, на странице 2 мой get:
router.get('/page-two/', function (req, res) {
res.render('/page-two/', {
})
})
Я использую Express, Express Session, Express Writer и Nunjucks.
Комментарии:
1. Я не знаю, знаете ли вы, но вы сразу перенаправляете на
/page-two/
перед получениемresponse.body
. Конечно, вы должны дождатьсяresponse.body
, затем сохранить его где-нибудь (переменная сеанса и т. Д.), А затем перенаправить на/page-two/
2. @JeremyThille Спасибо, да, я это заметил, нужно также внести эту корректировку. На данный момент я застрял на том, как сохранить ответ. тело в качестве переменной сеанса, а затем возвращает эту переменную на другой странице
3. Создайте помощник, который будет вызывать api для извлечения данных в /page-two маршрут … вызовите этот помощник в /page-one / и /page-two/ . если это строковые данные, чем использовать
session
. если это данные объекта, то вы можете использоватьreq.locals
.