我在终端中创建了一个名称为userInfo且集合名称为“ info”的mongodb,并在models / user_info.js中创建了一个架构。而且我根本没有从数据库中获取任何值。 我的userInfo数据库具有名称,studentId,部门
我的视图引擎是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);
答案 0 :(得分:0)
在模型中,您指向集合名称UserInfo
,但是数据在“信息”集合中。
因此,在模型中显式更改集合名称。
您的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
。