所有不以 /meal/ 开头的请求都应作为静态请求,例如 /res 或 (root)/anyfolder/anyfile
app.use('/share', express.static('share'));
使静态处理程序查看share/
,而不是项目根目录。共享整个根目录是不寻常的,因为人们可以阅读您的源代码。你真的需要为整个文件夹提供服务吗?你能不能把它放在res/
里面share/
,然后做一个符号链接指向res -> share/res/
,然后当客户端发出请求时,res/main.js
快递知道要查看share/res/main.js
。
无论如何@hexacyanide的代码应该处理你的情况,只要确保订购你的中间件功能,以便Express在静态文件之前处理路由功能:
app.use(app.router)
app.use('/share', express.static('share'));
app.get('/meal/:param', function(req, res) {
// use req.params for parameters
res.json(/* JSON object here */);
});
// if you want to prevent anything else starting with /meal from going to
// static just send a response:
//app.get('/meal*', function(req, res){res.send(404)} );
app.get('/', function(req, res) {
res.sendfile('index.html');
});