我没有问题,例如我有一个解决方法。然而,理解和开发解决方法的过程突出了我在我的知识中的一个根本性差距(作为一个自学成才的程序员,这发生了很多;-)!),我似乎无法找到答案将其插入任何地方。Node.js/Express路由到一个静态文件的URL
标准的node.js /快速安装使用,例如:
app.get('/index.htm', function (request, response) {
console.log("/index.htm");
});
app.get('*', function (request, response) {
console.log("*");
});
为什么当用户直接连接到index.htm的(在输入网址,虽然我还没有尝试点击链接)确实没有火?该页面没有问题。明显的用例是在服务静态页面之前检查用户是否已通过身份验证。
仅供参考,解决方法是将用户传递给诸如“/ authenticated”(匹配正常)的路由,执行检查然后重定向并基本阻止其他所有内容。
感谢教育我提前;-)
ň
UPDATE到Raynos'的问题 - 是的(忽略服务器/应用程序变量名称不一致)。
// CREATE SERVER
var server = express.createServer();
server.configure(function() {
server.use(express.static(__dirname + '/public'));
server.use(express.logger());
server.use(express.errorHandler({dumpExceptions: true, showStack: true}));
// start of session stuff
server.use(express.cookieParser());
server.use(express.session({store: sessionStore, secret: 'secret', key: 'express.sid'}));
});
我现在发现,路由匹配优良,一旦你删除的静态文件,即在原来的例子,删除的index.htm意味着控制台现在日志“将/index.htm”。
ň
感谢您花时间回答问题,但自从我问了这个问题后的5年以来,节点世界发生了很多变化,而您的回答虽然现在正确,但当时并非如此。 –