Я пытаюсь сохранить переменную в текстовом файле, но если переменная не найдена при использовании spotifyApi.clientCredentialsGrant()
, я хочу, чтобы мой сервер перенаправил на app.get('/error', function(req, res) {});
, который отображает другую веб-страницу, но возвращает ошибка:
(узел: 11484) UnhandledPromiseRejectionWarning: Ошибка [ERR_HTTP_HEADERS_SENT]: невозможно установить заголовки после их отправки клиенту
Как можно обойти эту ошибку для отображения ошибки веб-страницы. html?
У меня нет доступа к E JS или window.location
, поскольку он конфликтует с другими файлами и является программой node.js соответственно.
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname, '/public', 'homepage.html'));
try {
spotifyApi.clientCredentialsGrant()
.then(function (data) {
// Save the access token so that it's used in future calls
client_cred_access_token = data.body['access_token'];
console.log(client_cred_access_token);
console.log('Client Credentials Success!');
}, function (err) {
console.log('Something went wrong when retrieving an access token', err.message);
throw err;
});
fs.writeFile("./public/client_cred_token.txt", '', function (err) {
console.log('Clearing previous access token');
});
fs.writeFile("./public/client_cred_token.txt", client_cred_access_token, function (err) {
if (err) return console.log(err);
});
fs.readFile('./public/client_cred_token.txt', function (err, data) {
if (err) throw err;
console.log("Saved Client Credentials as: %s", data)
});
}
catch (err) {
res.redirect('/error');
}
});
Ключевым выводом из принятого ответа является не отправлять какие-либо HTML / файлы на сервер, пока не будет подтверждено, какой из них необходим.