我有两个问题。
我在下面有一段代码片段
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'必须是一个字符串。不是”+ typeof url)
那个州有什么问题?我必须将该语句放在函数中吗?但是,我不知道我应该为dong url解析创建什么函数。
我的第二个问题是指下面的代码段。我可以比较从网址中提取的路径,并使用 == 将其与字符串进行比较吗?
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');
}
非常感谢你。
答案 0 :(得分:0)
var req = require('request')
https://github.com/mikeal/request/blob/master/request.js
req是一个函数......
是的,如果您有对象请求,那么路径就是一个字符串,您可以使用==
或===
。
答案 1 :(得分:0)
如果req是请求模块,则req中不存在url。所以你必须得到错误。
您需要解析路由功能中的URL,其中req变量存在。
见下面的示例:
示例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;
}