Mongoose не отображает данные из mongoDB - PullRequest
0 голосов
/ 19 февраля 2019

я создал mongodb с именем userInfo с именем коллекции "info" в терминале и создал схему в models / user_info.js. И я вообще не получаю никаких значений из базы данных.У моего userInfo db есть имя, studentId, dept

Мой движок просмотра - jade / pug. Я пытаюсь перебрать и отобразить значения из базы данных.Я не получаю сообщение об ошибке, но значения не отображаются.Спасибо за помощь!

app.js

const express= require('express');
const path = require('path')
const mongoose = require('mongoose')
const bodyParser = require('body-parser')

mongoose.connect('mongodb://localhost/userInfo')
let db = mongoose.connection;


db.on('error',(error) => console.log(error));
db.once('open',() => console.log('Connected to Mongodb'))

const app = express()

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())


let UserInfo = require('./models/user_info')

app.set('views',path.join(__dirname,'views'))
app.set('view engine','pug')

app.get('/',(req,res) => {
    UserInfo.find({},function(err,info){
        if(err){
            console.log(err);
        }else{
            res.render('tabel',{
                title:'user report',
                info:info
            });
        }
    })
})

user_info.js // shema

let mongoose = require('mongoose');


//Userinfo Schema
let userInfoSchema = mongoose.Schema({
    name:{
        type:String,
        required:true
    },
    studentID:{
        type:String,
        required:true
    },
    dept:{
        type:String,
        required:true
    }
});

let UserInfo = module.exports = mongoose.model('UserInfo',userInfoSchema);

1 Ответ

0 голосов
/ 20 февраля 2019

В вашей модели вы указываете имя коллекции UserInfo, но ваши данные находятся в коллекции 'info'.

Итак, явно измените имя коллекции в вашей модели.

Ваш user_info.js (schema) должен быть

let mongoose = require('mongoose');
let userInfoSchema = mongoose.Schema({
    name:{
        type:String,
        required:true
    },
    studentID:{
        type:String,
        required:true
    },
    dept:{
        type:String,
        required:true
    }
});

let UserInfo = module.exports = mongoose.model('UserInfo', userInfoSchema, 'info');

В последней строке я передаю третий аргумент, чтобы указать имя коллекции для info.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...