未捕获的TypeError:URL不是使用WHATWG URL对象支持电子的构造函数

Ana*_*oua 24 url fs node.js electron

我试图在这里使用WHATWG URL对象支持读取文件

我收到此错误:未捕获TypeError:URL不是构造函数

这是我的代码:

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

Kow*_*lya 40

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

对于Node V6使用,

const URL = require('url').Url;
Run Code Online (Sandbox Code Playgroud)

要么

const { Url } = require('url'); 
Run Code Online (Sandbox Code Playgroud)

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

  • 我不得不使用`const URL = require('url').URL` (7认同)
  • 叹了口气,看起来这里的文档是错误的,它没有在各种例子中显示`.URL` https://nodejs.org/api/url.html. (2认同)

jrc*_*jrc 34

您使用的是Node 6而不是Node 8吗?

节点6

const url = require('url');
const myUrl = url.parse('http://example.com');
const myUrlString = url.format(myUrl);
Run Code Online (Sandbox Code Playgroud)

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();
Run Code Online (Sandbox Code Playgroud)

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


Tal*_*l Z 8

节点v10

网址类别

v10.0.0 | 现在,该类在全局对象上可用。

如此处所述:https : //nodejs.org/docs/latest-v10.x/api/url.html#url_class_url

因此,这应该没有require('url')以下工作:

const myUrl = new URL('http://example.com');
Run Code Online (Sandbox Code Playgroud)


use*_*655 7

您获取此信息的文档仅适用于node版本8.4.0.

如果它不适合您,那意味着您node的版本6.11.2.然后,只需更改字母大小写URL-

const { Url } = require('url');
const myUrl = new Url('http://example.com'); 
Run Code Online (Sandbox Code Playgroud)

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