sql >> Databasteknik >  >> NoSQL >> MongoDB

Express/Node.js-fel:Referensfel:Res är inte definierat

  1. Du kan anropa app.render på rotnivå och res.render endast inom en rutt/mellanprogramvara.
  2. app.render returnerar alltid html i callback-funktionen, medan res.render gör det bara när du har angett återuppringningsfunktionen som din tredje parameter. Om du anropar res.render utan den tredje parametern/återuppringningsfunktionen skickas den renderade HTML-koden till klienten med en statuskod på 200.

Ta en titt på följande exempel.

app.render

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

res.render utan tredje parameter

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

res.render med tredje parametern

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 använder app.render internt för att rendera mallfiler.
  2. can't set headers betyder att du inte kan komma in i kroppen.
  3. res.render() funktionen kompilerar din mall (vänligen använd inte ejs), infogar lokalbeteckningar där och skapar html-utdata av dessa två saker.

// här ställer du in att alla mallar finns i /views katalogen

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å mallsökvägen är views/ (första delen) + local (andra delen) + .ejs (tredje delen) ===views/local.ejs



  1. Filtrera efter datum med ett idObject

  2. php mongodb '$or' regex-sökning

  3. Mongo hitta dokument där array innehåller x-värden av given array

  4. MongoDB $in med underfråga