Ich versuche, diese Router Antwort asynchron zu machen:Ausführen res.render asynchron in Express App
var express = require('express'),
router = express.Router();
router.get('/', function(req, res, next) {
res.render('contact', {
titleShown: true,
title: 'Contact'
});
});
Ich versuchte async
zu implementieren, die ich über here lesen, aber nicht funktioniert:
var express = require('express'),
router = express.Router(),
async = require('async');
router.get('/', function(req, res, next) {
async.parallel([
res.render('contact', {
titleShown: true,
title: 'Contact'
})
], req);
});
Wie kann ich das machen?
Fehlermeldung, die ich bekam, als ich die --trace-sync-io
Flagge:
WARNING: Detected use of sync API
at fs.statSync (fs.js:892:18)
at tryStat (C:\www\node\website\node_modules\express\lib\view.js:169:15)
at resolve (C:\www\node\website\node_modules\express\lib\view.js:142:14)
at lookup (C:\www\node\website\node_modules\express\lib\view.js:110:17)
at View (C:\www\node\website\node_modules\express\lib\view.js:85:20)
at render (C:\www\node\website\node_modules\express\lib\application.js:569:12)
at render (C:\www\node\website\node_modules\express\lib\response.js:961:7)
at C:\www\node\website\routes\contact.js:9:7
at handle (C:\www\node\website\node_modules\express\lib\router\layer.js:95:5)
was meinst du Antwort asynchron? – gmaliar
Zeile 9 Spalte 9 in contact.js ist 'res.render', deshalb dachte ich, es ist nicht asynchron. Ich habe meine Frage mit der Fehlermeldung aktualisiert. – Lanti
res.render ist bereits asynchron. Wenn Sie tun: 'router.get ('/', (req, res, nächste) => { res.render ('Kontakt', {title: 'Kontakt'}, (err, html) => { console.log ('sendete dieses statische Zeug'); }); console.log ('das ist async'); }); Sie können wahrscheinlich sehen, was "das ist async" Zeichenfolge kann vor "dieses statische Zeug gesendet werden", weil all diese Sachen async ist. – Syberic