Nodejs 使用严格模式解析 dom 错误

Nodejs parsing dom error with strict mode

我真的是 nodejs 的新手,这 3-4 天我正在参加速成课程,以便在这方面做得更好......尝试 运行 这段代码:

(function () {

    var jsdom = require('jsdom');

    jsdom.env({  
      html: '<html><body><h1>Hello World!</h1><p class="hello">Heya Big World!</body></html>'
      //scripts: [
        //'http://code.jquery.com/jquery-1.5.min.js'
      //]
    }, function (err, window) {
      //var $ = window.jQuery;
         var $ = require('jquery')(window)
      $('body').append("<div class='testing'>Hello World</div>");
      console.log($(".hello").text()); // outputs Hello World
    });

}());

我收到这个错误:

/root/node_modules/jsdom/lib/jsdom/living/helpers/validate-names.js:2
const xnv = require("xml-name-validator");
^^^^^
SyntaxError: Use of const in strict mode.
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/root/node_modules/jsdom/lib/jsdom/level1/core.js:8:20)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10

而且我对解决它一无所知。很抱歉这个问题...

帮我把 jsdom"latest" 重新安装到旧版本 "3.1.2"。 =24=]

1) 删除 node_modules

中的 jsdom 文件夹

2) 将 package.json 中的依赖项更改为:

"jsdom": "3.1.2"

3) 当然还有 运行 "npm install"

希望对您有所帮助!

最新版本的 jsdom 不再适用于 Node.js。这是来自他们的 github 页面。

Note that as of our 4.0.0 release, jsdom no longer works with Node.js™, and instead requires io.js. You are still welcome to install a release in the 3.x series if you are stuck on legacy technology like Node.js™

因此,正如 Roman Dunin 所说,如果您想将 jsdom 与 Node.js 一起使用,请回滚到 3.x 版本。版本 3.1.2 是版本 4.0.0

之前的最后一个版本