无法从mongodb获取数据并将其显示为html

时间:2019-03-23 17:06:00

标签: 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);
    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;

路由index.js

   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>

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

我想从collections字段中获取数据,并将所有数据显示到名为仪表板的ejs页面中,我尝试这样做,但始终未定义error字段。

1 个答案:

答案 0 :(得分:0)

您需要在ejs模板中使用for循环

<% 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>
<% } %>