我有一个使用 Express 框架和http-auth模块设计的 node.js 应用程序,如下所示:
var auth = require('http-auth');
var express = require('express');
// ...
var mywebapp = express();
// ...
if (usebasicauth) {
var basic = auth.basic({realm:"MyRealm", file:"/srv/config/passwd"});
mywebapp.use(auth.connect(basic));
}
mywebapp.use('/js', express.static(__dirname + '/files/js'));
mywebapp.use('/css', express.static(__dirname + '/files/css'));
// ...
但是,我不想保护/js
and/css
目录下可用的资产。这是我尝试做的:
if (usebasicauth) {
var basic = auth.basic({realm:"MyRealm", file:"/srv/config/passwd"});
mywebapp.use(function(req, res, next) {
if (/^\/(css|js)/.test(req.url)) {
next();
}
else {
auth.connect(basic);
}
});
}
尝试访问下的 URL/css
并按/js
预期工作;但是,其他 URL 永远不会加载。
如何使其他 URL 按预期工作?