Je sais que cela a déjà été demandé de plusieurs façons, mais mon problème semble être différent de ceux déjà affichés. J'essaie d'envoyer des données à partir d'un formulaire dans Google Firebase. J'ai une application de noeud en utilisant express.Node Express Impossible de définir les en-têtes après leur envoi
Voilà ma fonction qui envoie les données à firebase:
function validateForm() {
async.series([
function (callback) {
var errors = "<strong>The following errors were entered:\n";
var name = $('#name').val();
var story = $('#story').val();
if (name.length < 1) {
errors += "\n-Please enter a valid name";
callback("Please enter a valid name", null);
}
if (story.length < 1) {
errors += "\n-Please enter a valid story";
callback("Please enter a valid story", null);
}
console.log("FInished validating");
callback(null, "finished validating");
}, function (callback) {
firebase.database().ref('stories/' + Date.now()).set({
name: name,
story: story
}, function() {
console.log("Firebase callback");
callback(null, "sent data!");
});
}, function (callback) {
console.log("Finished!");
callback(null, "done")
}
])
}
(ajouté quelques console.logging pour plus de clarté pour assurer que j'avais les callbacks à droite)
La soumission est déclencheur en cliquant sur un div c'est des styles pour ressembler à un bouton, donc je sais qu'il n'y a pas de comportement par défaut des problèmes de formulaires qui causent le problème. Voici l'erreur que je reçois dans le nœud.
Error: /Users/keegan/WebstormProjects/hack4health/views/error.hbs: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:356:11) at ServerResponse.header (/Users/keegan/WebstormProjects/hack4health/node_modules/express/lib/response.js:719:10) at ServerResponse.send (/Users/keegan/WebstormProjects/hack4health/node_modules/express/lib/response.js:164:12) at res.render.done (/Users/keegan/WebstormProjects/hack4health/node_modules/express/lib/response.js:956:10) at /Users/keegan/WebstormProjects/hack4health/node_modules/hbs/lib/hbs.js:93:9 at done (/Users/keegan/WebstormProjects/hack4health/node_modules/hbs/lib/async.js:74:20) at /Users/keegan/WebstormProjects/hack4health/node_modules/hbs/lib/hbs.js:88:18 at /Users/keegan/WebstormProjects/hack4health/node_modules/hbs/lib/hbs.js:69:11 at done (/Users/keegan/WebstormProjects/hack4health/node_modules/hbs/lib/async.js:74:20) at /Users/keegan/WebstormProjects/hack4health/node_modules/hbs/lib/hbs.js:64:20
Le JS I fourni est côté client – thekeegs
et 100% defo aucun code n'est déclenché ailleurs dans votre application? J'en ai déjà eu d'autres similaires ... mais ça a toujours été quelque chose de minuscule ailleurs. – John