最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

NPM请求

运维笔记admin8浏览0评论

NPM请求

NPM请求

所以我现在正在使用Request NPM模块。

request( URL, function (error, response, body) {
    console.log(body);
    var bod = JSON.parse(body);
    console.log(bod.url);
});

我想在EJS文件中使用bod.url参数。

console.log(bod.url)部分工作正常,它打印出我正在寻找的东西。

我希望做类似以下的事情。

request( URL, function (error, response, body) {
    console.log(body);
    var bod = JSON.parse(body);
    console.log(bod.url);
    var bod2 = bod.url;
});


res.render("image",{url:bod2});

但它一直说bod2是未定义的。

如果我将bod2变为请求函数之外的变量,那么我的EJS模板会正确呈现它。

我知道我错过了一些基本的东西,但我不知道我在哪里错了。

更新

如果我做了以下它可以工作......但这是一条路线内的不良做法吗?

request( URL, function (error, response, body) {
    console.log(body);
    var bod = JSON.parse(body);
    console.log(bod.url);
    var bod2 = bod.url;
    res.render("image",{url:bod2});                                                                                                      
});
回答如下:

这是因为变量的范围,有时会发生的问题。因此,您可以使用以下代码来处理此类情况。

request( URL, function (error, response, body) {
    console.log(body);
    var bod = JSON.parse(body);
    console.log(bod.url);
    var bod2 = bod.url;
    res.render("image",{url:bod2});
});

或者你可以在请求块之上声明bod2

var bod2;
return new Promise(resolve => {
   request( URL, function (error, response, body) {
      console.log(body);
      var bod = JSON.parse(body);
      console.log(bod.url);
      this.bod2 = bod.url;

   }, function (error, response, body) {
      if(!error)
         resolve(body);
   });

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论