TypeError – 参数必须是stringparsingURL时
我有两个问题。
我有一个下面的代码片段
var http = require('http'), https = require('https'), crypto = require('crypto'); var S = require('string'); var url = require('url'); var req = require('request'); var path = url.parse(req.url).pathname;
错误消息指向
var path = url.parse(req.url).pathname;
说扔新的TypeError(“参数”url“必须是一个string。不是”+ typeofurl)
这个状态怎么了? 我必须把这个声明放在一个函数中吗? 但是,我不知道我应该为dong urlparsing创build什么函数。
我的第二个问题是指下面的代码片段。 我可以比较从URL中提取的path并使用==比较string吗?
if ((S(path) == '/lens/v1/ping') || (S(path) == '/lens/v1/PING')) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.write('The lens route is up and running!\n'); res.end(); } else { res.writeHead(404, 'Not Found'); res.end('HTTP 1.1 404/Not Found'); }
非常感谢你提前。
var req = require('request')
https://github.com/mikeal/request/blob/master/request.js
请求是一个function…
是的,如果你有一个请求对象 ,那么path将是一个string,你可以使用==
或===
。
如果req是请求模块,则req中不存在url。 所以你必须得到错误。
你需要parsing你的路由函数里的reqvariables所在的URL。
看下面的例子:
例1:
app.get("/page", function(req, res) { var uri = url.parse(req.url).pathname; }
例2:
http.createServer(function(req, res){ var uri = url.parse(req.url).pathname; }