Nodejs用严格模式解析dom错误
Posted
技术标签:
【中文标题】Nodejs用严格模式解析dom错误【英文标题】:Nodejs parsing dom error with strict mode 【发布时间】:2015-04-29 15:26:21 【问题描述】:我真的是 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
我无能为力解决它。抱歉,这个问题很简单......
【问题讨论】:
请参考***.com/questions/22603078/… @ZunedAhmed 我没有使用严格模式,它正在模块中使用... id 真的而不是编辑模块源代码... 请注意,jsdom 不再支持 NodeJS(您可以使用旧版) - jsdom 认为 NodeJS 旧版软件,仅支持 io.js 版本 4。github.com/tmpvar/jsdom/blob/master/Changelog.md 您可以将const
更改为var
。如果您使用 --harmony
标志启动 node.js,它也可能会起作用。而且,你运行的是什么版本的 node.js?
@jfriend00 谢谢,当我测试它是否正确时我会告诉你,以便你可以添加它作为答案。
【参考方案1】:
帮我把 jsdom 从 "latest" 重新安装到旧版本 "3.1.2"
1) 删除node_modules中的jsdom文件夹
2) 将 package.json 中的依赖更改为:
"jsdom": "3.1.2"
3) 当然运行“npm install”
希望对你有帮助!
【讨论】:
我在使用 jsdom@3.1.2 版本时遇到了同样的问题。【参考方案2】:最新版本的 jsdom 不再适用于 Node.js。这是来自他们的 github 页面。
请注意,从我们的 4.0.0 版本开始,jsdom 不再适用于 Node.js™,而是需要 io.js。仍然欢迎您安装 3.x 系列中的一个版本,如果您坚持使用传统技术,例如 Node.js™
正如 Roman Dunin 所说,如果您想将 jsdom 与 Node.js 一起使用,请回滚到 3.x 版本。 3.1.2 版是 4.0.0 版之前的最后一个版本
【讨论】:
以上是关于Nodejs用严格模式解析dom错误的主要内容,如果未能解决你的问题,请参考以下文章
Doctype作用?严格模式与混杂模式如何区分?它们有何意义
Doctype作用?严格模式与混杂模式如何区分?它们有何差异?