cookie不会在第一次请求时发送

我在我的server.js express应用程序上有下面的代码:

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,提供一些configuration信息。 我面临的问题是,这个cookie在第一次请求时不会被发送到客户端。 对于所有后续请求,它确实工作正常。 我错过了什么?

前段时间我也有类似的问题。

在第一个请求开始时,cookie不存在。

cookies在请求期间发送,而不是在之前发送。

因此,在第二个请求开始时,Cookie被设置(来自请求1)。