[英]How to change collection name in mongoose.model?
Am new in Nodejs
, Am trying to create user login system with mongoDB
and passportjs
.我是
Nodejs
,我正在尝试使用mongoDB
和passportjs
创建用户登录系统。 Here i want to change collection name.在这里我想更改集合名称。
i refer this video here我在这里参考这个视频
This is my code:这是我的代码:
Database connection js数据库连接js
config/database.js
module.exports = {
database : 'mongodb://localhost:27017/my_first_project',
secret : 'Mysecret'
}
models/admin.js
const mongoose = require('mongoose');
let AdminSchema = mongoose.Schema({
name:{
type: String,
required: true
},
email:{
type: String,
required: true
},
username:{
type: String,
required: true
},
password:{
type: String,
required: true
},
created_on:{
type: Date,
default: Date.now
},
status:{
type: Number,
required: true,
validate : {
validator : Number.isInteger,
message : '{VALUE} is not an integer value'
}
}
});
const Admin = module.exports = mongoose.model('User', AdminSchema);
config/passport.js
const LocalStorage = require('passport-local').Strategy;
const User = require('../models/admin');
const config = require('../config/database');
const bcrypt = require('bcryptjs');
module.exports = function(passport){
//Local Strategy
passport.use(new LocalStorage(function(username, password, done){
//Check username
let query = {username:username};
console.log(query);
User.findOne(query, function(err, user){
console.log(user);
if(err) throw err;
if(!user)
{
return done(null, false, {message: 'No user found'});
}
//check password
bcrypt.compare(password, user.password, function(err, isMatch){
if(err) throw err;
if(isMatch){
return done(null, user);
}else{
return done(null, false, {message: 'Wrong password'});
}
});
});
}));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
}
This is my database structure这是我的数据库结构
When i user correct username and password for login passportjs shows null
.当我使用正确的用户名和密码登录时,passportjs 显示
null
。
Need to change
collection
name asadmin
.需要将
collection
名称更改为admin
。I don't know how to ask this question.
我不知道怎么问这个问题。 If am asking wrong sorry for all.
如果我问错了对不起。
You can use this structure.您可以使用这种结构。 API structure of mongoose.model is this:
mongoose.model 的 API 结构是这样的:
Mongoose#model(name, [schema], [collection], [skipInit])
which means意思是
mongoose.model('User', AdminSchema, 'admin');
//Here 3rd argument 'admin': as collection name
You can do with this too你也可以这样做
let AdminSchema = mongoose.Schema({
username : String,
password : String.
.......
}, { collection: 'admin' });
See this link from the Mongoose documentation.请参阅 Mongoose 文档中的此链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.