mongodb - MongoDB:在副本集配置中找不到名为“majority a”的写入关注模式
问题描述
我正在学习遍历媒体教程,但遇到了一个我不熟悉的错误(在标题中)。我一直在努力了解这一点,但我仍然对它出现的原因以及它的来源感到困惑。此外,我还没有找到与此问题相关的任何直接匹配项。
这是有问题的代码,底部的问题是返回error.message。
编辑:还值得注意的是,我能够成功地将用户添加到我的数据库中。所以,它贯穿整个try
街区,但也......catch
所以这是一个很大的混乱。我在邮递员上得到的唯一响应是来自该catch
块的服务器错误 500 消息。
const express = require('express');
const router = express.Router();
const gravatar = require('gravatar');
const bcrypt = require('bcryptjs');
const { check, validationResult } = require('express-validator');
const User = require('../../models/User');
// @route GET api/users
// @desc Test route
// @access Public
router.post(
'/',
[
check('name', 'Name is required').not().isEmpty(),
check('email', 'Please include a valid email').isEmail(),
check(
'password',
'Please enter a password with 6 or more characters'
).isLength({ min: 6 }),
],
async (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
const { name, email, password } = req.body;
try {
let user = await User.findOne({ email });
// see if user exists
if (user) {
return res.status(400).json({
errors: [{ msg: 'User already exists' }],
});
}
// get users gravatar
const avatar = gravatar.url(email, {
s: '200',
r: 'pg',
d: 'mm',
});
user = new User({
name,
email,
avatar,
password,
});
// encrypt password
const salt = await bcrypt.genSalt(10);
user.password = await bcrypt.hash(password, salt);
await user.save();
// return jsonwebtoken
return res.send('User registered');
} catch (error) {
console.log(error.message);
res.status(500).send('Server error');
}
}
);
module.exports = router;
用户模式
const mongoose = require('mongoose');
const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true,
unique: true,
},
email: {
type: String,
required: true,
unique: true,
},
password: {
type: String,
required: true,
},
avatar: {
type: String,
},
date: {
type: Date,
default: Date.now,
},
});
const User = mongoose.model('user', UserSchema);
module.exports = User;
连接配置:
const mongoose = require('mongoose');
const config = require('config');
const db = config.get('mongoURI');
const connectDB = async () => {
try {
await mongoose.connect(db, {
useUnifiedTopology: true,
useNewUrlParser: true,
useCreateIndex: true,
});
console.log('Connected to MongoDB');
} catch (err) {
console.error(err.message);
process.exit(1);
}
};
module.exports = connectDB;
解决方案
推荐阅读
- kubernetes - 未找到 k8s ExternalName 端点 - 但正在工作
- python - 在python中填充空单元格(从excel导入数据集)
- javascript - 当使网站响应时,我希望我的一些文字消失!请帮助
- python - Python如何检查熊猫中的DataFrame列是否包含范围内的所有数字
- javascript - 为什么 Instagram API 会为同一个用户返回两个不同的 user_id 值?
- accessibility - 有没有办法查看 Marketing Cloud 电子邮件符合哪些可访问性标准?
- flutter - 在 ListView 构建器中实现搜索
- java - 如何在 Java 16 中删除 --enable-preview?
- python - 在下面提到的情况下,如何有效地比较两个列表中的字符串:
- node.js - multer无法读取多个文件