Node.js Restify和semver通配符

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_\.~-]+)\/(.*)

问题:如何在接受版本头中指定通配符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_\.~-]+)\/(.*)/,
                    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不是有效版本。正如您所发现的,客户可以要求它想要的特定版本,也可以要求一个范围