【发布时间】:2018-08-16 18:53:21
【问题描述】:
我在 POST 路由中进行 API 调用,但由于某种原因,我无法通过 res.render 在 POST 路由中传递 JSON 数据。所以我正在考虑将 JSON 对象传递给 GET 路由,以便将 render 传递给正确的客户端页面。
这是我的 GET 和 POST 路线:
router.get('/bookDetails', (req, res) => {
res.render('bookDetails');
});
router.post('/bookDetails', (req, res) => {
let ID = req.body.ID;
request('https://www.googleapis.com/books/v1/volumes/' + ID, (err, response, body) => {
if(!err && response.statusCode == 200){
let bookdata = JSON.parse(body);
res.render('bookDetails', {bookdata: bookdata});
}else{
console.log(err);
}
});
});
我无法读取 bookDetails.ejs 文件中的书籍数据?有没有其他方法将这些数据传递到页面?
【问题讨论】:
-
你能做一个 console.log(body) 看看你从请求调用中得到了什么吗?通常有效载荷应该是响应。
-
@VitoMadio 我正在取回我想要的 JSON 对象,但我尝试在我的 ejs 文件中渲染它说它未定义。
-
好吧,如果你收到一个 json 对象,你不需要解析它,所以试试: let bookdata = body;而是希望它有所帮助。
-
@RockySingh 你能告诉我们你是如何在
ejs文件中访问bookdata的吗? -
@SridharI 解决了这个问题。还是谢谢
标签: javascript node.js express ejs