sql >> Database >  >> NoSQL >> MongoDB

Express/Node.js-fout:Referentiefout:Res is niet gedefinieerd

  1. Je kunt app.render aanroepen op rootniveau en res.render alleen binnen een route/middleware.
  2. app.render retourneert altijd de html in de callback-functie, terwijl res.render doet dit alleen wanneer u de callback-functie als uw derde parameter hebt opgegeven. Als je res.render . aanroept zonder de derde parameter/callback-functie wordt de gerenderde html naar de client gestuurd met een statuscode van 200.

Bekijk de volgende voorbeelden.

app.render

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

res.render zonder derde parameter

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

res.render met derde 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 gebruikt app.render intern om sjabloonbestanden weer te geven.
  2. can't set headers betekent dat je niet in het lichaam kunt komen.
  3. res.render() functie compileert je sjabloon (gebruik geen ejs), voegt daar locals in en maakt html-uitvoer van die twee dingen.

// hier stel je in dat alle sjablonen zich in /views bevinden map

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});

Het sjabloonpad is dus views/ (eerste deel) + local (tweede deel) + .ejs (derde deel) ===views/local.ejs



  1. Hoe een schemamethode in mangoest toe te voegen?

  2. Null-waarde opvragen in MongoDB

  3. Vind documenten waarvan het arrayveld ten minste n elementen van een bepaalde array bevat

  4. bouw een API voor het streamen van audio/video van GridFS mongodb