我正在使用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);
以上代码在浏览器中呈现时在浏览器中抛出上述错误。任何人都可以为此提供帮助。
答案 0 :(得分:3)
您需要指定表达您正在使用的典型视图引擎。例如ejs,jade,pub,handlebars或plain html ..
在中间件下面的代码中添加以下内容:
// views目录将是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()。渲染用于从视图引擎渲染视图模板
答案 1 :(得分:1)
app.use(
express.static(path.join(__dirname, 'public'), {
etag: false
})
);