Node.js Restify和semver通配符
问题:如何在接受版本头中指定通配符semvar?(Restify 2.5.0) 目标:接受1.x.x。查看文档,这似乎是通过将semver设置为~1或1.x实现的。然而,Restify似乎无法处理这个问题 服务器:Node.js Restify和semver通配符,node.js,restify,Node.js,Restify,问题:如何在接受版本头中指定通配符semvar?(Restify 2.5.0) 目标:接受1.x.x。查看文档,这似乎是通过将semver设置为~1或1.x实现的。然而,Restify似乎无法处理这个问题 服务器: var server = restify.createServer({ version: '1.1.0',... server.get({ path: /^\/([a-zA-Z0-9_\.~-]+)\/(.*)
var server = restify.createServer({
version: '1.1.0',...
server.get({
path: /^\/([a-zA-Z0-9_\.~-]+)\/(.*)/,
version: '1.x' // also tried '~1'
},
function(req, res, next){
req.log.debug(req.params,'Request');
res.send(req.params);
});
路线:
var server = restify.createServer({
version: '1.1.0',...
server.get({
path: /^\/([a-zA-Z0-9_\.~-]+)\/(.*)/,
version: '1.x' // also tried '~1'
},
function(req, res, next){
req.log.debug(req.params,'Request');
res.send(req.params);
});
结果:
{"code":"InvalidVersion","message":"* is not supported by GET /sys/blah"}
我可以通过将
路由版本设置为“1.0.5”
(范围内的示例),然后将客户端接受版本指定为~1
,来实现这一点,但是,似乎更适合在服务器端设置通配符。有什么想法吗?服务器应该是它公开的版本的权威,所以它模糊/合理的接近(使用tilde前缀)是没有意义的
Restify用于公开版本(更具体地说),因此~1不是有效版本。正如您所发现的,客户机可以要求它想要的特定版本,也可以要求一个范围。服务器应该是它所公开的版本的权威,因此模糊/合理的接近(使用tilde前缀)是没有意义的 Restify用于公开版本(更具体地说),因此~1不是有效版本。正如您所发现的,客户可以要求它想要的特定版本,也可以要求一个范围