不能在Node.js上使用URL模块,不能调用方法'parse'的定义
Can't use URL module on Node.js, cannot call method 'parse' of undefined
我试图从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
相关文章:
- 在ES6中,模块将导致多个网络调用,因为两个模块不能在单个文件中定义
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- 打字稿显示不能设置未定义的属性,如何解决
- 为什么我不能将未定义分配给 window.load
- 不能在javascript中定义两个var
- 按钮不'不能在自定义镀铬扩展中工作
- 为什么我不能重新定义函数'它的原型来自内部
- 自定义角度过滤器提供TypeError.不能调用undefined,但变量已定义并有效
- 为什么嵌套的 describe() 块不能看到在外部块中定义的变量
- 为什么不能使用lambda来定义原型函数
- 不能设置未定义的属性
- 不能调用未定义节点.js的方法“forEach”
- 主干不能调用未定义/未加载数据的方法“toJSON”
- 为什么我不能使用自定义选择的属性
- 不能调用未定义的 GetJson 的方法“toLowerCase”
- 我能不能定义一个方法,给它一个值,并在对象文字中分配其他方法
- JavaScript instanceof:不能定义函数的参数是什么实例
- 即使导入了Jquery函数,也不能定义它
- 不能定义set和get方法
- 不能定义数组元素