Javascript Can';t在Node.js上使用URL模块,无法调用方法';解析';未定义的
我正在尝试从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
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
与本地varurl
冲突。我是这样解决的:
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。