Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript mongo数据库中存在重复条目_Javascript_Node.js_Mongodb_Express - Fatal编程技术网

Javascript mongo数据库中存在重复条目

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

我是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 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));
});

如果你不想重复用户名,那么你的集合应该有一个唯一的属性索引,不管你的脚本有什么样的控件,也不管我要评论什么