我正在尝试使用node.js和mongoose将数据保存在MongoDB地图集中。
每次我使用MySchema.save()
时,数据都在插入,但是我也遇到错误:
UnhandledPromiseRejectionWarning: MongoWriteConcernError: No write concern mode named 'majority;' found in replica set configuration
此外,没有重复的条目,数据也在插入,但我也遇到错误
let User = require('../models/users.models');
const username = req.body.username;
const newUser = new User({username});
newUser.save()
.then(() => res.json('user added!'))
.catch(err => res.status(400).json('Error: ' + err));
用户模型
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
var userSchema = new Schema({
username: {
type: String,
required: true,
unique: true,
trim: true,
minlength: 3
},
},
{
timestamps: true
});
const User = mongoose.model('User', userSchema);
module.exports = User;
答案 0 :(得分:1)
我知道这是2个月前问的,但对于那些会遇到相同问题的人。
您错误地在URI字符串末尾输入了错误的字符:
mongodb+srv://${ user }:${ password }@track-mkahl.mongodb.net/test?retryWrites=true&w=majority;
您需要删除单词;
之后的majority
。
答案 1 :(得分:1)
对我来说,它也像@Yossi Saadi建议的那样在URI字符串中,只是我在其中写了majoritys
而不是majority
答案 2 :(得分:0)
我认为这行有问题。
让User = require('../ models / users.models');
我为您创建了一个解决方案。
/models/user.js
const mongoose = require('mongoose')
const Schema = mongoose.Schema
mongoose.connect("mongodb://localhost/stack-overflow", { useNewUrlParser: true })
var userSchema = new Schema({
username: {
type: String,
required: true,
unique: true,
trim: true,
minlength: 3
},
},
{
timestamps: true
});
const User = mongoose.model('User', userSchema);
module.exports = User
/routes/userroute.js
const User = require("../models/user")
// Imagine run() as an asynchronous request handler
async function run() {
try {
const user1 = new User({ username: "lidafafnus" })
user1.save((err,result) => {
console.log(err, result)
})
} catch(error) {
console.log(error)
}
}
run()
答案 3 :(得分:0)
这对我有帮助。
const schema = new Schema({ name: String }, {
writeConcern: {
w: 'majority',
j: true,
wtimeout: 1000
}
});
答案 4 :(得分:0)
"mongoURI" : "mongodb+srv://${ user }:${ password }@cluster0.mde0j.mongodb.net/cluster0?retryWrites=true&w=majority "
我在default.json中也遇到了同样的错误,它的简单错误只是删除了最后的&w=majority
部分,它将得到解决