Javascript can';t从mongodb获取数据并将其显示为html

Javascript can';t从mongodb获取数据并将其显示为html,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,名为Field.js的模型 const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/SuperchainV1', { useNewUrlParser: true }); mongoose.set('useNewUrlParser', true); mongoose.set('useFindAndModify', false); mongoo

名为Field.js的模型

    const mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost:27017/SuperchainV1', { 
    useNewUrlParser: true });
    mongoose.set('useNewUrlParser', true);
    mongoose.set('useFindAndModify', false);
    mongoose.set('useCreateIndex', true);
    const db = mongoose.connection;
    const FieldSchema = mongoose.Schema({

    productID: {
    type: String
    },
    productName:{
    type: String
    },
    fieldLocation: {
    type: String
    },
    farmerName: {
    type: String
    },
    farmerMobile: {
    type: String
    },
    farmerNid: {
    type: String
    },
    date: {
    type: Date,
    default: Date.now
    }
    });


    const Field = mongoose.model('Field', FieldSchema);
    module.exports = Field;
   router.get('/dashboard', ensureAuthenticated, (req, res) => {
   let field = Field.find({})
   .sort({date:'desc'}).exec( (err, field) => {
    res.render('dashboard', field);
        });
     })
路由索引.js

    const mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost:27017/SuperchainV1', { 
    useNewUrlParser: true });
    mongoose.set('useNewUrlParser', true);
    mongoose.set('useFindAndModify', false);
    mongoose.set('useCreateIndex', true);
    const db = mongoose.connection;
    const FieldSchema = mongoose.Schema({

    productID: {
    type: String
    },
    productName:{
    type: String
    },
    fieldLocation: {
    type: String
    },
    farmerName: {
    type: String
    },
    farmerMobile: {
    type: String
    },
    farmerNid: {
    type: String
    },
    date: {
    type: Date,
    default: Date.now
    }
    });


    const Field = mongoose.model('Field', FieldSchema);
    module.exports = Field;
   router.get('/dashboard', ensureAuthenticated, (req, res) => {
   let field = Field.find({})
   .sort({date:'desc'}).exec( (err, field) => {
    res.render('dashboard', field);
        });
     })
dashboard.ejs,在这里我要在获取数据后显示数据

    <div class="jumbotron">
       <p class="lead">
         <% field.productID %>
         <% field.productName %>
         <% field.fieldLocation %>
         <% field.farmerName %>
         <% field.farmerNumber %>
         <% field.farmerNid %>
        </p>
    </div>

我收到的错误“未定义字段”


我想从集合字段中获取数据,并将所有数据显示到名为dashboard的ejs页面中。我尝试了此操作,但始终得到未定义的错误字段。

您需要使用for loop in
ejs
模板

<% for(var i=0; i < field.length; i++) { %>
   <div class="jumbotron">
       <p class="lead">
         <%= field[i].productID %>
         <%= field[i].productName %>
         <%= field[i].fieldLocation %>
         <%= field[i].farmerName %>
         <%= field[i].farmerNumber %>
         <%= field[i].farmerNid %>
        </p>
    </div>
<% } %>


字段。查找({})
?为什么要将空对象传递给
find
?因为它不会返回任何东西,然后你正在对它进行排序。据我所知,find方法将返回FieldTrue中的所有事件-您能向我们展示
console.log(field)的结果吗
就在
res.render
之前?您还需要添加
if(err)throw err