首页 > 解决方案 > Ubuntu 中的 NodeJS 不会将 console.log() 打印到终端

问题描述

我是编程新手,我正在尝试按照教程来抓取 Craigslist 并从那里获取信息,然后将其打印到控制台/然后文件。console.log() 在带有 NodeJS 的 Windows 10 中工作,但它在 Ubuntu 中无法以某种方式工作。我见过人们使用函数来打印它,但我无法弄清楚我将如何在我的小项目中做到这一点。

这是我的文件内容:

let jquery = require('jquery')
let Nightmare = require('nightmare'),
    nightmare = Nightmare()


nightmare.goto('https://vancouver.craigslist.org/search/jjj?postedToday=1')


    .wait(3000)


    .evaluate(function() {
        let items = [];
        $('.result-title').each(function() {
            item = {}
            item["title"] = $(this).text()
            item["link"] = $(this).attr("href")
            items.push(item)
        })
        return items
    })
    .end()

    .then(function(items) {

        for (item in items) {
            console.log(items[item].title)
            console.log(items[item].link)
            console.log("\n")
        }
    });

有人可以帮忙吗?谢谢

标签: javascriptnode.jsubuntuconsole.lognightmare

解决方案


如果您console.log在脚本顶部有任何内容,您是否在终端上看到任何内容?

例如:

console.log('foobar') // add this line

let jquery = require('jquery')
// etc

如果这样做,请尝试console.log(items)在最终.then回调中。你在那里看到什么吗?

此外,您可能希望将 替换为for items in item循环items.forEach

    items.forEach(item => {
      console.log(item.title);
      console.log(item.link);
      console.log("\n");
    });

推荐阅读