NodeJS 未捕获的类型错误:URL不是使用WHATWG URL对象支持电子的构造函数

kqhtkvqz  于 2022-12-12  发布在  Node.js
关注(0)|答案(4)|浏览(200)

我正在尝试在此处使用WHATWG URL对象支持读取文件
而我得到这个错误:未捕获的类型错误:URL不是构造函数
下面是我代码:

var fs = require("fs");                                     
const { URL } = require('url');
var dbPath = 'file://192.168.5.2/db/db.sqlite';
const fileUrl = new URL(dbPath);
wnrlj8wa

wnrlj8wa1#

我遇到了同样的问题,然后我研究了url模块并找到了解决方案

对于节点V6,使用:

const URL = require('url').Url;

const { Url } = require('url');

如果查看该模块,它会导出5个方法,其中一个是Url,因此如果需要访问Url,可以使用这两个方法中的任意一个

h79rfbju

h79rfbju2#

您是否使用节点6而不是节点8?

节点6

const url = require('url');
const myUrl = url.parse('http://example.com');
const myUrlString = url.format(myUrl);

https://nodejs.org/dist/latest-v6.x/docs/api/url.html#url_url

节点8

const { URL } = require('url');
const myUrl = new URL('http://example.com');
const myUrlString = myUrl.toString();

https://nodejs.org/dist/latest-v8.x/docs/api/url.html#url_url

wn9m85ua

wn9m85ua3#

节点v10.0.0及更高版本(当前为节点v19.x)

URL类别

版本10.0.0|类别现在可在全域对象上使用。
这里提到:Node.js文档-类:网址
因此,在没有require('url')的情况下,此操作应该可以正常工作:

const myUrl = new URL('http://example.com');
wj8zmpe1

wj8zmpe14#

您取出此信息的文档适用于8.4.0版本的node
如果它不适合您,这意味着您的node6.11.2版本。然后,只需更改URL的字母大小写-

const { Url } = require('url');
const myUrl = new Url('http://example.com');

因为url模块导出的是Url,而不是URL

相关问题