无法在Nodejs Typescript应用程序中导入URL类

时间:2017-09-26 01:23:37

标签: node.js typescript

我正在尝试从nodejs api导入URL类,这样我就可以解析网址并检索它们的来源,主机名和路径。

我正试着打字 import * as URL from "url";

我也试过了 import { URL } from "url";

我似乎无法让这个为我工作。任何帮助将不胜感激。

我试图使用它的方式就是这样

var site = new URL("http://www.website.com");

它抛出错误,因为它声明URL不是构造函数

3 个答案:

答案 0 :(得分:18)

URL constructor是作为节点v7.0的一部分引入的。如果您使用节点> = v7.0,import { URL } from "url";是导入它的正确方法。确保您使用的是最新版本的节点类型:

npm install --save-dev @types/node

如果你的节点版本是< 7.0然后你可以使用parse方法:

import * as url from "url";

var site = url.parse("http://www.website.com");

答案 1 :(得分:1)

如果有人想知道如何使用URL以便代码可以在Node.js和浏览器环境之间移植,那么我来了以下解决方案:

import * as nodeUrl from "url";

const URL = typeof window !== "undefined" ? window.URL : nodeUrl.URL;

答案 2 :(得分:0)

import * as url from 'Url';

{ parse: [Function: urlParse],
  resolve: [Function: urlResolve],
  resolveObject: [Function: urlResolveObject],
  format: [Function: urlFormat],
  Url: [Function: Url] 
}

它不是构造函数。您需要使用其中一种公开的方法:

import * as url from 'url';

console.log(url.parse('https://www.google.com'))

// Output:
Url {
  protocol: 'https:',
  slashes: true,
  auth: null,
  host: 'www.google.com',
  port: null,
  hostname: 'www.google.com',
  hash: null,
  search: null,
  query: null,
  pathname: '/',
  path: '/',
  href: 'https://www.google.com/' }
undefined
>