错误:没有指定默认引擎,也没有提供扩展名。 在浏览器中

我正在使用mongo和node.js,我正在使用mongodb npm包来连接db和我的代码,如下所示。

var express = require('express'); var MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost:27017/STUDENT"; var app = express(); MongoClient.connect(url, function(err, db) { console.log("Connected correctly to server"); findDOcuments(db); db.close(); }); var entireDoc = ''; var data = function(data, id){ if(id == 'records'){ entireDoc = JSON.stringify(data); } } var findDOcuments = function(db) { // Get the records collection var collection = db.collection('records'); // Find some records collection.find({}).toArray(function(err, docs) { console.log("Found the following records"); console.log(docs); data(docs,'records'); }); } app.get('/getInfo', function(req, res){ res.render(entireDoc); }) app.listen(3000); 

上面的代码在浏览器中渲染时在浏览器中抛出上述错误。 任何人都可以帮忙吗?

你需要指定你正在使用哪种types的视图引擎。 例如ejs,玉器,酒吧,把手或纯html。

在下面的代码中添加以下代码:

// views目录将是project_folder / views。 所以基本上当你给一个模板文件名来渲染,它应该知道在哪里可以find这个。 所以下面的path设置。

 app.set('views', path.join(__dirname, 'views')); 

//指定视图引擎,并使用它,你需要像安装npm install –save ejs一样安装

 app.set('view engine', 'ejs'); 

所以当你说res.render('products');

它将在project_folder / views /中searchproduct.ejs文件,

此外,如果你想发送直接string,你可以使用res.send()或者如果你想发送json,你可以使用res.json()。 渲染用于从视图引擎渲染视图模板

 app.use( express.static(path.join(__dirname, 'public'), { etag: false }) );