[英]how to GET data from mongodb and transfer it to Html page using nodeJS?
[英]Fetching data from mongodb through nodejs and express to a html page
基本上,我想将“employees”集合中的特定字段显示为html页面。 但即使在网上搜索了很多,我也无法这样做。
这是来自server.js文件的路由部分:
app.get('/fetching', function(req, res){
connection.fetcher(function(data)
{
res.render("testing.html",data);
}
);
});
现在这是来自connection.js文件的部分:
var fetcher= function(callback) {
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/HippoFeedo';
MongoClient.connect(url, function (err, db) {
if (err) {
console.log('Unable to connect to the mongoDB server. Error:', err);
}
else {
console.log('Connection established to', url);
// Get the documents collection
var collection = db.collection('employees');
collection.find({},function (err, result) {
if (err) {
console.log(err);
} else {
console.log(result);
callback(result);
}
});
}
});
现在,findOne工作正常并将值完美地返回给server.js
文件。 但是我需要使用“find”,那么如何通过回调将完整的数组发送到server.js
?
而且,我需要将检索到的数据从server.js
发送到一个名为testing.html
的HTML文件,通过渲染并通过角度js显示它。 请解释一个简单的方法。
编辑:我知道如何使用“查找”,我只是在功能中使用“toArray”和“find”。 现在,我可以通过回调将值返回给server.js。 但另一个问题仍未解决:如何将这些值传递给html页面?
使用ejs,您需要设置视图引擎:
app.set('view engine', 'ejs');
然后获取您的数据:
app.get('/employees',(req , res) =>{
db.collection('employees').find().toArray(function(err , i){
if (err) return console.log(err)
res.render('index.ejs',{employees: i})
})
});
.ejs文件是这样的:
employees
<ul class="employees">
<% for(var i=0; i<employees.length; i++) {%>
<li class="employees">
<span><%= " Nome: " +employees[i].name+"."%></span>
<span><%=" Address: " + employees[i].address%></span>
</li>
<% } %>
</ul>
只是一种使用ejs的简单方法。 希望有助于澄清事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.