所有请求/应担任静,像/ RES或(根)/ anyfolder/anyfile
app.use('/share', express.static('share'));
使静态处理程序看起来share/
,而不是项目根。共享整个根是很不寻常的,因为人们可以阅读你的源代码。你真的需要提供整个文件夹吗?你可以把res/
放在share/
里面,然后做一个符号链接指向res -> share/res/
,然后当客户端发出请求时res/main.js
表示知道在share/res/main.js
中查找。
反正@六氰化物的代码应该处理你的情况下,只要确保订购您的中间件功能,使得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');
});
'你真的需要为整个文件夹服务吗?' 是的,我需要,这个根不是(原始)项目文件夹,并且不包含整个源代码。 – hibiya
这取决于您如何组织您的文件,我个人将我的服务器端javascript代码放置在静态目录的上方或旁边。你应该可以用app.use(express.static(__ dirname))替换'app.use('/ share',express.static('share'));'为进程所在的目录提供服务执行。 – Plato