我试图从网址获取参数,例如:
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
之前有人遇到过这个问题吗?
答案 0 :(得分:9)
我发现了问题,我有这样的代码:
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);
现在工作正常。
答案 1 :(得分:1)
这也是我的一点 - 我的问题是url.parse
与本地var url
冲突。我这样解决了:
import { parse as urlparse } from 'url'
var url = 'https://localhost:80'
var parsed_url = urlparse(url)
感谢@loganfsmyth提供见解!
答案 2 :(得分:0)
function parse(urlStr: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery (+3 重载) @deprecated — 从 v11.0.0 开始 - 使用 WHATWG URL API。
'(urlStr: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery' is deprecated.ts(6385) url.d.ts(51, 9): 声明在这里被标记为已弃用。