我在 server.js 快递应用程序中获得了以下代码:
var express = require('express');
var fallback = require('express-history-api-fallback');
var compress = require('compression');
var favicon = require('serve-favicon');
var prerenderio = require('prerender-node');
var config = require('getconfig');
var app = express();
app.use(function (req, res, next) {
if (config.environment !== 'local') {
res.cookie('config', JSON.stringify(config), { secure: true });
}
else {
res.cookie('config', JSON.stringify(config));
}
next();
});
app.get('/versioncheck', function(req, res) {
return res.json({ version: config.version });
});
app.use(compress());
app.use(prerenderio.set('prerenderToken', config.prerender_token).set('protocol', 'https'));
app.use(express.static(__dirname, { maxAge: 31536000 }));
app.use(favicon(__dirname + '/favicon.ico'));
app.use(fallback('index.html', { root: __dirname }));
const PORT = process.env.PORT || 1010;
app.listen(PORT, function () {
console.log('Server started on port %s', PORT);
});
我使用express设置的第一个中间件非常简单:它使用一些配置信息向客户端发送cookie。我面临的问题是,这个cookie在第一次请求时不会被发送到客户端。对于所有后续请求,它确实可以正常工作我错过了什么?
答案 0 :(得分:0)
我前段时间遇到过类似的问题。
在第一次请求开始时,cookie不存在。
Cookie会在请求期间发送,而不是之前发送。
因此,在第二个请求开始时,cookie被设置(来自请求1)。