server.post()
- это асинхронная функция, которая немедленно возвращается и не может присваивать значения переменным во внешнем синхронном кодовом блоке.Перестройте ваш код, чтобы справиться с асинхронным поведением:
app.prepare().then(() => {
const server = express()
return new Promise((resolve, reject) => {
server.post('/', (req, res) => {
resolve(req.body.code);
})
});
}).then(countrycode => {
console.log('server responded with countrycode:', countrycode);
})
Альтернативно:
app.prepare()
.then(() => {
const server = express()
return new Promise(resolve => {
server.post('/', (req, res) => {
resolve(req.body.code);
})
})
.then(countrycode => {
return new Promise(resolve => {
server.get('/', (req, res) => {
console.log(res)
if (countrycode == 'DE') {
resolve(app.render(req, res, '/de', req.query))
} else {
resolve(app.render(req, res, '/', req.query))
}
})
})
})
})