sql >> Database teknologi >  >> NoSQL >> MongoDB

Express/Node.js-fejl:Referencefejl:Res er ikke defineret

  1. Du kan kalde app.render på rodniveau og kun res.render inden for en rute/middleware.
  2. app.render returnerer altid html'en i tilbagekaldsfunktionen, hvorimod res.render gør det kun, når du har angivet tilbagekaldsfunktionen som din tredje parameter. Hvis du kalder res.render uden den tredje parameter/tilbagekaldsfunktion sendes den gengivne html til klienten med en statuskode på 200.

Tag et kig på følgende eksempler.

app.render

app.render('index', {title: 'res vs app render'}, function(err, html) {
    console.log(html)
});

res.render uden tredje parameter

app.get('/render', function(req, res) {
    res.render('index', {title: 'res vs app render'})
})

res.render med tredje parameter

app.get('/render', function(req, res) {
    res.render('index', {title: 'res vs app render'}, function(err, html) {
        console.log(html);
        res.send('done');
    })
})
  1. res.render bruger app.render internt for at gengive skabelonfiler.
  2. can't set headers betyder, at du ikke kan komme ind i kroppen.
  3. res.render() funktion kompilerer din skabelon (brug venligst ikke ejs), indsætter lokale der og skaber html-output ud af disse to ting.

// her indstiller du at alle skabeloner er placeret i /views mappe

app.set('views', __dirname + '/views');

// here you set that you're using `ejs` template engine, and the
// default extension is `ejs`
app.set('view engine', 'ejs');

// here you render `local` template
response.render("local", {local: local_json});

Så skabelonstien er views/ (første del) + local (anden del) + .ejs (tredje del) ===views/local.ejs



  1. Redis flere abonnenter

  2. hvordan tilføjes --auth for mongodb-billede, når du bruger docker-compose?

  3. Hvordan bruges Redis i Trello?

  4. få distinkte værdier med sorterede data