【爬虫问题】关于异步程序执行的机制,v4.js,spiderIndex和spiderSuccessIndex的关系



  • 1.第一个问题:
    0_1474346291475_upload-9c0c19dc-de28-4f00-a319-247878c98e51

    我在看这段代码的时候,觉得它的意思是等我通过request.get()拿到url之后,那个callback function才会执行,这样1.如果返回成功,我就可以抓到一个数据,然后supperSuccessIndex就会+1;2.如果返回不成功,输出“错误”。不管是1还是2,我都要调用它自己query(next),而每次调用query(next)都会执行一次spiderIndex+1的步骤,那么我觉得spiderSuccessIndex+num_of_“错误”=spiderIndex。但是我执行的时候,发现spiderIndex > spiderSuccessIndex+num_of_“错误”。我想问一下这是为什么?

    2.第二个问题:
    我按照要求都安装好了mongoose,但是当我用node v5.js的时候会报错如下(v1.js到v4.js都可以正常执行):
    0_1474346689356_upload-10b840b3-2163-492c-a159-78c49fff4d44


  • cid:81:privileges:read

    1. 每次调用到request.get时才会增加spiderSuccessIndex或者输出’错误’。但是不是每次调用query都会调用request.get。当spiderIndex大于queryN时,spiderIndex会增加,但不会调用query了。

    2. 根据你的问题描述,我猜你可能并没有启动数据库。
      mongoose只是NodeJS里用来访问MongoDB的一个包。执行项目的时候需要启动MongoDB才可以在Node中连接上数据库。你可以把MongoDB想成另外一个server,mongoose是访问那个server的API。是不是需要run起server才能通过API来访问呢?:)
      启动MongoDB的命令是’mongod’ 如果出现permission denied,就’sudo mongod’
      如果我说的情况和你遇到的不相符,希望你提供更多信息我们来讨论~


 

与 BitTiger Community 的连接断开,我们正在尝试重连,请耐心等待