Error: No default engine was specified and no extension was provided. in the browser

Error: No default engine was specified and no extension was provided. in the browser

我正在使用 mongo 和 node.js,我正在使用 mongodb npm 包连接数据库和我的代码如下。

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

以上代码在浏览器中呈现时在浏览器中抛出以上错误。任何人都可以帮忙吗。

您需要明确说明您正在使用哪种类型的 eof 视图引擎。例如 ejs、jade、pub、handlebars 或 plain html..

在您的中间件下方的代码中添加以下内容:

// 视图目录将为 project_folder/views。所以基本上当你给一个模板文件名来渲染时,它应该知道在哪里可以找到它。因此设置了以下路径。

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

//指定视图引擎并使用它你需要安装 npm install --save ejs

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

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

它将在 project_folder/views/

中搜索 product.ejs 文件

另外,如果你想发送直接字符串,你可以使用res.send(),如果你想发送json,你可以使用res.json()。 Render 用于从视图引擎渲染视图模板

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