node.js + express:提供来自不同“用户/连接”文件夹的静态文件

时间:2015-10-01 09:25:01

标签: node.js express

我通过办公室网络服务器(node.js + express)提供SPA,但这些静态文件并非来自静态公用文件夹。网络服务器从另一台服务器获取信号,新的客户端可以下载。办公室服务器获取存档并将其提取到新文件夹(名称:client / clientxxxxx.zip_content /)。所有新连接都应该使用新文件夹,但旧文件夹必须使用他们在第一次连接时使用的版本。

我认为我在识别相同的用户/连接时遇到问题,因为SPA将是无状态的,我无法更改statice文件。 PHP具有会话自动(cookie中的id或get变量)。有表达的东西吗?以及如何提供来自不同主文件夹的所有文件?

我的简单解决方案:

使用HTML和子文件夹中的图片进行测试,它适用于express-session(Thx Alex)和简单的sendFile

app.use(session({
    genid: function(req) {
        return uuid.v4();
    },
    cookie: {
        path: '/',
        httpOnly: true,
        secure: false,
        maxAge: null
    },
    resave: true,
    saveUninitialized: true,
    secret: 'this is not a secret'
}));
app.get(['/','/:path*'], function (req, res, next) {
    req.session.clientPath = req.session.clientPath || path.join(main.paths.client, main.versions.client + '_content');
    var clientFile = path.normalize(path.join(req.session.clientPath, req.path === '/' ? '/index.html' : req.path));
    if (clientFile.indexOf(main.paths.client) === 0 && fs.existsSync(clientFile)) {
        res.sendFile(clientFile);
    } else {
        res.status(404).send('Not found');
    }
});

0 个答案:

没有答案