Поскольку ваши переменные локальные переменные в функциях обратного вызова get
и post
. Если вы хотите, чтобы они сохранялись за пределами этих обратных вызовов, вам нужно переместить их в область, которая не исчезнет, когда обратный вызов вернется.
Например, это делает их глобальными модулями НО кажется, что было бы странным для каждого POST, независимо от того, откуда он, изменять содержимое несвязанных GET (см. ***
комментарии) :
// *** Declared at module scope
let subject = "Your Subject Will Appear Here";
let message = "Your Message Will Appear Here";
app.get('/', function (req, res) {
// *** Not declared here
res.render("index", {subject:subject, message:message});
})
// ...
app.post('/', (req, res) => {
let body = ''
req.on('data', (chunk) => {
body += chunk.toString()
})
req.on('end', () => {
let payload = JSON.parse(body)
if (payload.Type === 'Notification') {
console.log(payload.Message);
subject = payload.Subject; // <======= *** no `let`, we're not declaring here
message = payload.Message; // <======= *** same
res.render("index", {subject:subject, message:message});
}
});
});
Но опять же, это, вероятно, не имело бы смысла. Вероятно, вам понадобится какой-то механизм хранения для каждого пользователя или для каждого сеанса (например, база данных или устаревший кэш в памяти и т. Д.).