Javascript 全局变量不起作用等等



我对下面的代码有一些问题:

  • 我在第11行定义了一个名为iMax的全局变量。不过,如果我试着在17号线打电话,那就没用了。为什么?[已回答]

  • 由于节点模块"cheerio"one_answers"request",此脚本在web浏览器中不起作用,但它在本地命令提示符下起作用。有没有什么方法可以让在网页中运行另一个javascript来与之共享变量,并执行该javascript以在网页外(本地)运行?这两个java脚本将位于同一目录中。[未回答]

  • 当我删除'urls=[];'时从第3行,奇怪的是,我得到了一个错误,上面写着:

    请求('http://forum.blockland.us/index.php?action=profile;u=137487;sa=showPosts'
    SyntaxError:意外的令牌(

    这对我来说毫无意义,因为'urls=[];'在代码中没有任何用途。你知道为什么会这样吗?[已回答]

-

1    var request = require('request'),
2       cheerio = require('cheerio'),
3       urls = [];
4    
5       
6    request('http://forum.blockland.us/index.php?action=profile;u=137487;sa=showPosts', function(err, resp, body){
7       if(!err && resp.statusCode == 200){
8           var $ = cheerio.load(body);
9           $('b:contains(...)', 'tr.catbg3').each(function(){
10              totalPages = $(this).next().text();
11              iMax = (totalPages - 1) * 15;
12          });
13      }
14    });
15    
16    
17    for(i = 0; i <= iMax; i += 15)
18    {
19      console.log(i);
20    }

声明var iMax={您的cool使用的默认值};顶部。

现在,在iMax真正声明之前,您实际上已经调用了for循环。

"当你只有一把锤子时,一切看起来都像钉子"。你没有以正确的方式使用正确的技术来实现你的目标。

浏览器中运行的JavaScript是在客户端的沙盒上运行的,因此在服务器上设置全局变量,然后运行node.js实例可能是不切实际的。

您可能需要的是一个轻量级的web服务器。。。如果您愿意,Node可以为您做这件事,并接受POST。一个简单的HTTP服务器是Node.js的第一个教程之一。然后你可以用张贴的信息做你想做的事。

实际上,一个简单的web服务器,带有一个脚本模块,可以传递信息并运行node.js,这可能是可持续实现这一目标的最简单方法。

其他海报是正确的,注意JavaScript中一行中的多个语句,这被认为是错误的做法。

您可能应该在全局范围内调用请求之前定义变量:var iMax;或使用window.iMax = (totalPages - 1) * 15;。但事实上,您应该在请求函数中使用for循环,因为如果您没有设置iMax,否则可能不需要它。

删除带有urls = [];的行时,实际上也删除了分号;

这使得下一行成为声明行,这意味着cheerio = require('cheerio'),行之后的所有内容都成为变量的另一个声明。错误的语法错误。

因此,删除行urls = [];,但将逗号替换为分号,这样就有了cheerio = require('cheerio');

相关内容

  • 没有找到相关文章

最新更新