web-dev-qa-db-fra.com

Uncaught TypeError: l'URL n'est pas un constructeur utilisant la prise en charge des objets URL WHATWG pour electron

J'essaie de lire un fichier en utilisant le support d'objet URL WHATWG ici

et j'obtiens cette erreur: Uncaught TypeError: l'URL n'est pas un constructeur

voici mon code:

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

18
Ana Houa

J'ai fait face au même problème, puis j'ai regardé dans le module d'URL et trouvé une solution

Pour le noeud V6 use, 

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

ou

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

Si vous regardez dans le module, il exporte 5 méthodes, dont l’URL. Si vous devez accéder à l’URL, vous pouvez utiliser l’une ou l’autre des méthodes.

36
Kowsalya

Utilisez-vous le nœud 6 au lieu du nœud 8?

Noeud 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

Noeud 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

30
jrc

Les documents que vous avez extraits de cette information sont pour la node de la version 8.4.0.

Si cela ne fonctionne pas pour vous, cela signifie que votre node est de la version 6.11.2. Ensuite, il suffit de changer la casse de la lettre URL

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

parce que le module url exporte Url, pas URL.

7
user4447655

Node v10

Classe d'URL

v10.0.0 | La classe est maintenant disponible sur l'objet global.

Comme mentionné ici: https://nodejs.org/docs/latest-v10.x/api/url.html#url_class_url

Cela devrait donc fonctionner sans require('url'):

const myUrl = new URL('http://example.com');
2
Tal Z