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

时间:2017-06-24 15:36:16

标签: node.js url electron fs

我正在尝试使用WHATWG网址对象支持here

来阅读文件

我收到此错误:未捕获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);

4 个答案:

答案 0 :(得分:37)

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

对于Node V6 使用,

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

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

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

答案 1 :(得分:31)

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

节点6

'use strict';
var http = require('http');
var fs = require('fs');
var pdf = require('html-pdf');

http.createServer(function (req, res) {

    fs.readFile('./PDFFormat.html', 'utf8', function (err, html) {
        if (err) {
            //error handling
        }
        pdf.create(html).toStream(function (err, stream) {
            if (err) {
                //error handling
            }
            res.writeHead(200, {
                'Content-Type': 'application/force-download',
                'Content-disposition': 'attachment; filename=file.pdf'
            });
            stream.pipe(res);
        });
    });
}).listen(8080, '127.0.0.1');
console.log('Server running at http://127.0.0.1:8080/');

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

节点8

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

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

答案 2 :(得分:7)

您提取此信息的文档适用于版本8.4.0的{​​{1}}。

如果它不适合您,则表示您的node版本为6.11.2。然后,只需更改URL -

的字母大小写
const { Url } = require('url');
const myUrl = new Url('http://example.com'); 

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

答案 3 :(得分:3)

节点v10

URL类

  

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');