Javascript 如果在ensureIndex MongoDB节点中发现重复项,则显示错误
我已成功停止MongoDB数据库中的重复条目,但我的问题是,每当调用重复条目时,它不会返回任何错误,只是停止节点服务器 如何抛出任何自定义错误,如res.send('replicate entry') 我正在使用永久启动服务器.js作为非停止服务器 下面是我发行的代码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
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
,正确处理错误。