gpt4 book ai didi

node.js - 从 GET 方法中将推文数据发送到 PUG 模板

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:03 25 4
gpt4 key购买 nike

将从 GET 函数中获取的数据发送到 PUG 模板的最有效方法是什么?我一直将数据推送到数组中,然后将其发送到模板,但这似乎效率低下。

app.get('/tweet/:id', function(req, res) {
const id = req.params.id;
T.get('statuses/show/' + id, function(err, data, response) {
let stweet = [];
stweet.push(data.text);
});
res.render('tweet', {stweet: stweet});
});

这会从 url 获取 Tweet ID 并使用它来检索 Tweet 对象。有什么方法可以从 T.get('statuses/show'...) 中提取“数据”并将其直接显示在 PUG 模板上吗?

最佳答案

首先,您的代码无法工作,因为 T.get 是异步的,并且 stweet 是在 res.render('tweet', {stweet: stweet}); 没有访问权限的范围内定义的。所以该代码将抛出:

Uncaught ReferenceError: stweet is not defined

T 支持 Promise,你应该使用它们,这样你的代码会更干净。 T.get完成后直接将数据发送到PUG模板即可,无需使用:.push

app.get('/tweet/:id', async(req, res) => {

try {
// We wait until `T.get` is done
const { data } = await T.get(`statuses/show/${req.params.id}`, { /** params **/ });
res.render('tweet', { stweet: [data.text] });

} catch(e) {
// Or whatever error message you want to display
res.render('error');
}
});

您应该检查:How do I return the response from an asynchronous call?

关于node.js - 从 GET 方法中将推文数据发送到 PUG 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50200878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com