TypeError: Cannot read property 'readFileSync' of undefined NodeJS dom-parser
TypeError: Cannot read property 'readFileSync' of undefined NodeJS dom-parser
正在尝试将 Dom-Parser 与 Discord.js 一起使用。无法从其他任何地方找到帮助。
第 15 行错误 fs.readFile
我在 fs 工作时也遇到了很多问题。首先它没有定义然后它在初始化之前无法运行,只是修复了它(我希望)
// Discord stuff.
const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');
const token = config.token;
// DomParser
var DomParser = require('dom-parser');
var parser = new DomParser();
var data = fs.readFileSync(filepathHidden);
// Other requirements
var fs = require('fs');
// when getting online.
client.once('ready', () => {
console.log('WAHAHAHA IM ALIVE!');
}),
fs.readFile('https://url.com)', 'utf8', function(err, html){
if (!err){
var dom = parser.parseFromString(html);
console.log(dom.getElementsByClassName('new_solution_box_title').innerHTML);
}
})
client.login(token);
var
是 hoisted.
因此,由于您有 var fs
,因此在您拥有该语句的函数/模块/全局范围内有一个名为 fs
的变量。
开始时未定义。
当您说 fs = require('fs')
时,您将文件系统模块分配给它。那时它不再是未定义的。
在上一行,当你尝试用fs.readFileSync
读取它时,你还没有定义它所以你得到一个错误。
订单很重要.
请阅读有关 URL object support for FS API 的 NodeJS 文档。使用 URL 时似乎只支持 file:
协议。
但是,我什至不建议你使用fs.readFileSync
,因为它是一个阻塞操作(代码执行将停止直到它完成)并且涉及网络传输。
尝试先使用 fetch
、XMLHttpRequest
或您喜欢的库获取文件,然后再解析它。或者至少使用 fs.readFile
将异步执行其任务(file:
协议限制仍然适用)。
对于未定义的错误,您必须import/require fs
才能使用它。换句话说,var fs = require('fs')
必须出现在 fs
.
的任何其他使用之前
正在尝试将 Dom-Parser 与 Discord.js 一起使用。无法从其他任何地方找到帮助。
第 15 行错误 fs.readFile
我在 fs 工作时也遇到了很多问题。首先它没有定义然后它在初始化之前无法运行,只是修复了它(我希望)
// Discord stuff.
const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json');
const token = config.token;
// DomParser
var DomParser = require('dom-parser');
var parser = new DomParser();
var data = fs.readFileSync(filepathHidden);
// Other requirements
var fs = require('fs');
// when getting online.
client.once('ready', () => {
console.log('WAHAHAHA IM ALIVE!');
}),
fs.readFile('https://url.com)', 'utf8', function(err, html){
if (!err){
var dom = parser.parseFromString(html);
console.log(dom.getElementsByClassName('new_solution_box_title').innerHTML);
}
})
client.login(token);
var
是 hoisted.
因此,由于您有 var fs
,因此在您拥有该语句的函数/模块/全局范围内有一个名为 fs
的变量。
开始时未定义。
当您说 fs = require('fs')
时,您将文件系统模块分配给它。那时它不再是未定义的。
在上一行,当你尝试用fs.readFileSync
读取它时,你还没有定义它所以你得到一个错误。
订单很重要.
请阅读有关 URL object support for FS API 的 NodeJS 文档。使用 URL 时似乎只支持 file:
协议。
但是,我什至不建议你使用fs.readFileSync
,因为它是一个阻塞操作(代码执行将停止直到它完成)并且涉及网络传输。
尝试先使用 fetch
、XMLHttpRequest
或您喜欢的库获取文件,然后再解析它。或者至少使用 fs.readFile
将异步执行其任务(file:
协议限制仍然适用)。
对于未定义的错误,您必须import/require fs
才能使用它。换句话说,var fs = require('fs')
必须出现在 fs
.