【发布时间】:2018-02-16 16:33:48
【问题描述】:
我真的不知道如何实现这样的工作
var express = require('express');
var app = express();
var server = require('http').createServer(app);
app.get('*', function(req, res){
if(whateverYouDreamOf){
res.redirect('http://www.subdomain.example.com');
}else if(something){
app.use(express.static(__dirname + '/app1'));
}else{
app.use(express.static(__dirname + '/app2'));
}
}
我需要根据很多参数提供不同的文件夹,但我被卡住了。所以一个可行的例子会很棒。
编辑
此示例无法使用 Mukesh Sharma 方法正确提供多个文件:
路径:
example folder
/ | \
/ | \
/ | \
server.js | public folder | node_modules
/ | \
/ | \
/ | \
index.html | style.css | game.js
HTML/CSS/JS:https://jsfiddle.net/gmye9er5/2/
服务器:
var express = require('express');
var app = express();
var server = require('http').createServer(app);
app.use('*', function(req, res, next){
return express.static(__dirname + '/public')(req, res, next);
});
server.listen(3000, /*your IP*/);
【问题讨论】:
-
此代码存在根本缺陷,因为您似乎正试图为一个用户或一个请求执行
app.use(express.static(...))行为,但它根本不起作用。运行app.use(express.static(...))后,它将在服务器进程的剩余生命周期内对所有用户生效。我很怀疑这就是你想要的。 -
所以,请备份并用文字解释您要完成的工作。
-
另外,如果您向我们展示实际的
if语句正在查看的内容,我们或许能够找到一种内置方法来执行您想要执行的操作。 -
是的,我不想那样做。我想根据用户请求提供或不提供文件夹的所有文件,而不是单独发送每个文件。我正在寻找包装此文件夹中所有文件的最快方法。
标签: javascript node.js express