Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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 如果在ensureIndex MongoDB节点中发现重复项,则显示错误_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 如果在ensureIndex MongoDB节点中发现重复项,则显示错误

Javascript 如果在ensureIndex MongoDB节点中发现重复项,则显示错误,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我已成功停止MongoDB数据库中的重复条目,但我的问题是,每当调用重复条目时,它不会返回任何错误,只是停止节点服务器 如何抛出任何自定义错误,如res.send('replicate entry') 我正在使用永久启动服务器.js作为非停止服务器 下面是我发行的代码 router.route('/new_order') .post(function(req, res, next){ var order_no = req.body.order_no; var origin_p

我已成功停止MongoDB数据库中的重复条目,但我的问题是,每当调用重复条目时,它不会返回任何错误,只是停止节点服务器

如何抛出任何自定义错误,如res.send('replicate entry')

我正在使用永久启动服务器.js作为非停止服务器

下面是我发行的代码

  router.route('/new_order')

  .post(function(req, res, next){

  var order_no = req.body.order_no;
  var origin_port = req.body.origin_port;
  var destination_port = req.body.destination_port;
  var expected_date = req.body.expected_date;
  var status = 0;
var item = {
  order_no: order_no,
  origin_port: origin_port,
  destination_port: destination_port,
  expected_date: expected_date,
  status: status
};
  var url = 'mongodb://localhost:27017/transport_main';
  mongo.connect(url, function(err, db){
    assert.equal(null, err);
    db.collection('orders').ensureIndex( { order_no: 1 }, {unique:true}, function(err){
      db.collection('orders').insertOne(item, function(err, result){
        assert.equal(null, err);
        console.log('New Order Insterted');
         db.close();
         res.send('true');
       });
    });
  });
}))

提前感谢

添加以下内容:

db.collection('orders').ensureIndex( { order_no: 1 }, {unique:true}, function(err){
if(err) return res.send("You are already registered");...
添加以下内容:

db.collection('orders').ensureIndex( { order_no: 1 }, {unique:true}, function(err){
if(err) return res.send("You are already registered");...

解决了这个问题

11000是尝试插入时调用的重复错误代码。在ensureIndex期间没有

ensureIndex只是检查是否创建了索引,如果没有,它将为我们重新创建索引

重要提示:在尝试插入时删除“assert.equal(null,err)”

mongo.connect(url, function(err, db){
    assert.equal(null, err);
    db.collection('orders').ensureIndex( { order_no: 1 }, {unique:true}, function(err, result){
        db.collection('orders').insertOne(item, function(err, result){
          console.log(err);
          if (err) {
            if (err.code == 11000) {
              res.end('Duplicate Entry Found');
            }
          }
          console.log('New Order Insterted');
           db.close();
           res.send('true');
         });
    });
});

解决了这个问题

11000是尝试插入时调用的重复错误代码。在ensureIndex期间没有

ensureIndex只是检查是否创建了索引,如果没有,它将为我们重新创建索引

重要提示:在尝试插入时删除“assert.equal(null,err)”

mongo.connect(url, function(err, db){
    assert.equal(null, err);
    db.collection('orders').ensureIndex( { order_no: 1 }, {unique:true}, function(err, result){
        db.collection('orders').insertOne(item, function(err, result){
          console.log(err);
          if (err) {
            if (err.code == 11000) {
              res.end('Duplicate Entry Found');
            }
          }
          console.log('New Order Insterted');
           db.close();
           res.send('true');
         });
    });
});

不要在生产代码中使用
assert
,正确处理错误。不要在生产代码中使用
assert
,正确处理错误。