2016-05-10 29 views
0

mit den Werten von einem Webfrom eingereicht von Express zur Einleitung Crawl mit Anfrage + cheerio.nodejs express - kann Header nicht setzen

Die Teile funktionieren getrennt, wenn zusammengefügt bekomme ich einen Fehler: Kann Header nicht einstellen, nachdem sie gesendet werden.

was ist hier falsch?

router.post('/', function(req, res){ 

    res.json('processing')   

    crawl(r.keyword, r.tld, r.brand).then(function(d){ 

     userObject.urlCache = d; 

    }) 
}) 
+0

Der Fehler bedeutet, dass die Antwort zweimal gesendet wird. Der Grund ist mit diesem Code nicht klar. Führen Sie Post-Anfrage-Behandlungen? Können Sie auch alle Fehlerhandler sorgfältig binden? http://odetocode.com/blogs/scott/archive/2015/10/01/javascript-promises-and-error-handling.aspx –

Antwort

0

res.json('processing') wird eine Antwort senden. Sie können die Header nach dem Senden einer Antwort nicht ändern. Aus dem Code-Snippet ist nicht ersichtlich, was die Antwort nach dem Senden verändert.

Für weitere Informationen über die ausdrückliche Antwort Objekt: http://expressjs.com/en/api.html#res.json

Auch gibt es mehr Antwortmöglichkeiten als res.json. Sie senden in Ihrem Beispiel nicht wirklich json. Vielleicht möchten Sie res.send('processing'), aber das wird nicht beheben Sie Ihre Set-Header Problem ..

0

Sie sollten zuerst die Kopfzeile und dann die Anfrage senden.

res.setHeader('charset', 'utf-8'); 
res.send('processing');