我有web内容:由<a href="https://overviewer.org/" rel="nofollow">Minecraft Overviewer</a>产生的混合通配符和参数的快速
/home/mc/backups/servername/latest/overviewer
我有快递/一的NodeJS非常简单服务器。这里是我的app.js:
var express = require('express');
var app = express();
//----------------------------------------------------------------------------+
// Each server's root points to the latest overviewer page |
//----------------------------------------------------------------------------+
app.get('/minecraft/:server/*', function(req, res) {
console.log('HELLO?');
res.send('Finally some luck!');
/*
var
server = req.params.server,
file = req.params[0] ? req.params[0] : 'index.html',
dir = '../backups/' + server + '/latest/overviewer';
res.sendFile(file, { root: dir });
*/
});
app.use(express.static('www'));
app.listen(80, function() {
console.log('Web server listening on port 80');
});
我包括比正在运行,所以你可以看到我的意图的情况下,这是一个XY样的问题多一点的代码。我想要路由静态文件,但我不认为我可以使用express.static
,因为我想将URL映射为与我的文件结构(并基于服务器名称)稍有不同。
那么我的简单服务器有什么问题?当我尝试导航到mysite.com/minecraft/isopre
时,我看到一个白页,表示Cannot GET /minecraft/isopre
。如果我从第7行的字符串末尾删除*
,我会看到Finally some luck!
。但我想要那里的明星,所以我可以将mysite.com/minecraft/isopre
映射到index.html
或mysite.com/minecraft/isopre/overviewer.js
。
那么正确的做法是什么?
工程就像一个魅力。谢谢:)我认为这很简单 – Assimilater