Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t在Node.js上使用URL模块,无法调用方法';解析';未定义的_Javascript_Node.js_Url - Fatal编程技术网

Javascript Can';t在Node.js上使用URL模块,无法调用方法';解析';未定义的

Javascript Can';t在Node.js上使用URL模块,无法调用方法';解析';未定义的,javascript,node.js,url,Javascript,Node.js,Url,我正在尝试从URL获取参数,例如: http://localhost:8888/?name=test 为了获取name参数,我看到了一些示例,它们使用url模块,如下所示: var url = require('url'); var urlParts = url.parse(request.url, true); var query = urlParts.query; var http = require("http"); var url = require('url'); http.c

我正在尝试从URL获取参数,例如:

http://localhost:8888/?name=test
为了获取
name
参数,我看到了一些示例,它们使用
url
模块,如下所示:

var url = require('url');

var urlParts = url.parse(request.url, true);
var query = urlParts.query;
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);
import { parse as urlparse } from 'url'
var url = 'https://localhost:80'
var parsed_url = urlparse(url)
因此,首先我运行了这个命令
npm install url
,依赖项也在
package.json
文件上,但我总是遇到以下错误:

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

以前有人遇到过这个问题吗?

我发现了这个问题,我的代码如下:

var url = require('url');

var urlParts = url.parse(request.url, true);
var query = urlParts.query;
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);
import { parse as urlparse } from 'url'
var url = 'https://localhost:80'
var parsed_url = urlparse(url)
而且
url
对象在
createServer
函数中不可访问(不确定原因),因此我只替换这一行:

var urlParts = url.parse(request.url, true);
为此:

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

现在工作正常。

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

var url = require('url');

var urlParts = url.parse(request.url, true);
var query = urlParts.query;
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);
import { parse as urlparse } from 'url'
var url = 'https://localhost:80'
var parsed_url = urlparse(url)
谢谢你的洞察力

函数解析(urlStr:string,parseQueryString:true,slashesInferenceHost?:布尔):UrlWithParsedQuery(+3个重载) @已弃用-自v11.0.0以来-使用WHATWG URL API


“(urlStr:string,parseQueryString:true,slashesIndegateHost?:boolean):UrlWithParsedQuery”已弃用。ts(6385)url.d.ts(51,9):声明在此处标记为弃用。

console.log(url)的输出是什么?我发现了问题(请参阅下面的评论),感谢您的时间:)您是否在
createServer
回调中的某个地方有第二个
var url
?我唯一关心的问题是
require
是节点中为数不多的同步方法之一(显然不是的时候,这是一场噩梦)所以你在处理程序中进行阻塞调用。这可能是个问题,也可能不是,因为它还非常智能,可以缓存请求的文件。可能只是想验证一下。谢谢John,我不知道这一点,我将仔细看看这个DEP0116:Legacy URL API#History Versions Changes v15.13.0 Deprecation Reversed。状态更改为“遗留”。仅限v11.0.0文档不推荐。类型:已撤销弃用旧URL API已弃用。这包括url.format()、url.parse()、url.resolve()和遗留的urlObject。请改用whatwgURL API。