Внутри этого:
app.post('/', function(req, res) { // <== Note the response here is named res
У вас есть это:
const request = https.request(options, function(response) {
if (response.statusCode === 200) {
response.send('Successfully subscribed'); // <== This is trying to send a
// response to your response which
// doesn't make sense
} else {
response.send('There was an error with singing up, please try again');
}
Это не имеет смысла. Вы не звоните по номеру response.send()
по только что полученному ответу http.request
. Этот HTTP-запрос выполнен. Вы сделали запрос и получили ответ.
Я полагаю, вы имеете в виду, что этот код должен быть таким, где вы отправляете ответ со своего сервера обратно на исходный запрос клиента:
const request = https.request(options, function(response) {
if (response.statusCode === 200) {
res.send('Successfully subscribed'); // <== use res here so it refers to the
// response to the original Express
// request/response
} else {
res.send('There was an error with singing up, please try again');
}
К вашему сведению, вы можете принять во внимание, что библиотека request()
устарела и, как правило, не должна использоваться для нового кода. Здесь есть список хороших альтернатив . Я лично использую got()
, так как считаю его простым в использовании, полностью поддерживает обещания (именно так вы должны программировать асинхронный код в наши дни) и содержит необходимые мне функции.