Javascript mongo数据库中存在重复条目
我是Express.js的新手,目前正在设计一个带有CRD操作的应用程序。因为我不想插入重复的用户名。你能帮我在这个文件和js文件中添加什么,或者给我一些提示,让我继续Javascript mongo数据库中存在重复条目,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我是Express.js的新手,目前正在设计一个带有CRD操作的应用程序。因为我不想插入重复的用户名。你能帮我在这个文件和js文件中添加什么,或者给我一些提示,让我继续 var express = require('express'); var router = express.Router(); /* GET userlist. */ router.get('/userlist', function(req, res) { var db = req.db; var collectio
var express = require('express');
var router = express.Router();
/* GET userlist. */
router.get('/userlist', function(req, res) {
var db = req.db;
var collection = db.get('userlist');
collection.find({},{},function(e,docs){
res.json(docs);
});
});
/* POST to adduser. */
router.post('/adduser', function(req, res) {
var db = req.db;
var collection = db.get('userlist');
collection.insert(req.body, function(err, result){
res.send(
(err === null) ? { msg: '' } : { msg: err }
);
});
});
/* DELETE to deleteuser. */
router.delete('/deleteuser/:id', function(req, res) {
var db = req.db;
var collection = db.get('userlist');
var userToDelete = req.params.id;
collection.remove({ '_id' : userToDelete }, function(err) {
res.send((err === null) ? { msg: '' } : { msg:'error: ' + err });
});
});
module.exports = router;
您可以使用mongoose为mongoDB集合创建如下方案:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const userSchema = new Schema({
username: {
type: String,
required: true,
unique: true,
},
});
const User = mongoose.model('User', userSchema);
module.exports = User;
您可以这样使用它:
let User = require('../models/user.model');
router.post('/adduser', function(req,res) {
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));
});
如果你不想重复用户名,那么你的集合应该有一个唯一的属性索引,不管你的脚本有什么样的控件,也不管我要评论什么