不能在Node.js上使用URL模块,不能调用方法'parse'的定义

Can't use URL module on Node.js, cannot call method 'parse' of undefined

本文关键字:不能 定义 方法 parse 调用 模块 js Node URL      更新时间:2023-09-26

我试图从URL获取参数,例如:

http://localhost:8888/?name=test

为了获得name参数,我看到了一些示例,他们使用url模块,如下所示:

var url = require('url');
var urlParts = url.parse(request.url, true);
var query = urlParts.query;

所以,首先我运行这个命令npm install url,也依赖于package.json文件,但我总是得到这个错误:

TypeError: Cannot call method 'parse' of undefined
at C:'Users'Administrator'git'test'app.js:28:7

有人遇到过这个问题吗?

我发现了问题,我有这样的代码:

var http = require("http");
var url = require('url');
http.createServer(function(request, response) {
    var urlParts = url.parse(request.url, true);
    var query = urlParts.query;
}).listen(appport);

url对象是不可访问的createServer函数内(不知道为什么),所以我只是替换这一行:

var urlParts = url.parse(request.url, true);
与这个:

var url_urlParts = require('url').parse(request.url, true);

这个也咬了我-我的问题是url.parse与本地变量url冲突。我是这样解决的:

import { parse as urlparse } from 'url'
var url = 'https://localhost:80'
var parsed_url = urlparse(url)

感谢@loganfsmyth的洞察力!

function parse(urlStr: string, parseQueryString: true, slashesDenoteHost?): UrlWithParsedQuery(+3重载)@deprecated -自v11.0.0 -使用WHATWG URL API。

'(urlStr: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery'已弃用。ts(6385) url。ts(51,9):此处声明被标记为deprecated