尝试设置解析静态路由时,“无效的正则表达式:未终止的组”

时间:2014-02-22 19:45:15

标签: javascript regex node.js restify

我正在尝试使用restify从包含静态文件的目录中为所有不以/api开头的路径提供服务。

var restify = require('restify');

var server = restify.createServer();                                                                           
server.get(/^\/(?!api)/, restify.serveStatic({                                                                   
    directory: './static'                                                                                        
}));                                                                                                             

server.listen(8080, function() {                                                                                 
    console.log('%s listening at %s', server.name, server.url);                                                
}); 

但是,当我尝试去,比如http://0.0.0.0:8080/index.html时,我得到:

{"code":"InternalError","message":"Invalid regular expression: /^/(?!a/: Unterminated group"}

我很困惑,因为:

 $ node
> var e = /^\/(?!api)/;
undefined
> e.test('/api/v1');
false
> e.test('/index.html');
true

1 个答案:

答案 0 :(得分:3)

此帖子发布时,静态文件插件已被破坏。请参阅我https://github.com/mcavage/node-restify/issues/537的调试。