首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从GET方法将Tweet数据发送到PUG模板

从GET方法将Tweet数据发送到PUG模板
EN

Stack Overflow用户
提问于 2018-05-06 14:37:45
回答 1查看 55关注 0票数 1

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

代码语言:javascript
运行
复制
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,并使用它检索Tweet对象。有什么方法可以从T.get('statuses/show'...)中提取“数据”并将其直接显示在PUG模板上吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-06 14:46:26

首先,您的代码不可能工作,因为T.get是异步的& stweet是在res.render('tweet', {stweet: stweet});没有访问权限的作用域中定义的。这样,代码就会抛出:

代码语言:javascript
运行
复制
Uncaught ReferenceError: stweet is not defined

T支持承诺,您应该使用它们,这样您的代码就会更加简洁。完成T.get后,只需将数据直接发送到PUG模板,就不需要使用:.push

代码语言:javascript
运行
复制
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?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50200878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档