繁体   English   中英

从mongodb获取数据到nodejs并表达到html页面

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM