删除错误.MongooDB + Express.传入的参数必须是 12 个字节的单个字符串或 24 个十六进制字符的字符
Deleting with error. MongooDB + Express. Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
使用mongodb和monk。我正在尝试删除记录,但不断收到错误:错误:传入的参数必须是 12 个字节的单个字符串或十六进制格式的 24 个十六进制字符的字符串我尝试过的不同代码:
router.get('/delete/:id', function(req, res) {
var db = req.db;
var uid = req.params.id.toString();
var collection = db.get('usercollection');
collection.remove({"_id":uid}, function(err, result) {
if(result === 0){
res.send("There was a problem delete the information to the database.");
}
else{
res.location("list");
res.send(res.redirect("list"));
}
});
});
module.exports = router;
这是玉石文件
List
ul
each event, i in list
li
#{event.id} : #{event.text}
a(href="/delete/#{event._id}") Delete
由于您获取的id为字符串,因此您必须使用ObjectID(uid)将字符串转换为mongodb对象,因为"_id"仅接受mongo对象。你可以使用试试这个
router.get('/delete/:id', function(req, res) {
var db = req.db;
var uid = req.params.id.toString();
var collection = db.get('usercollection');
collection.remove({"_id":ObjectID(uid)}, function(err, result) {
if(result === 0){
res.send("There was a problem delete the information to the database.");
}
else{
res.location("list");
res.send(res.redirect("list"));
}
});
});
module.exports = router;
链接来自传入的参数必须是 24 个十六进制字符的字符串 - 我认为它是
就我而言,这奏效了:
var myId = JSON.parse(req.body.id);
collection.findOne({'_id': ObjectID(myId)}, function(error,doc) {
if (error) {
callback(error);
} else {
callback(null, doc);
}
});
相关文章:
- 在JavaScript中输出转义字符
- 不同浏览器中的空白字符正则表达式行为
- Regex匹配除“”之外的所有字符;.js”;
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 本地存储中的字符串到字节数组转换
- 使用RegExp查找url中的字符
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 允许在文本框中使用某些字符
- 删除错误.MongooDB + Express.传入的参数必须是 12 个字节的单个字符串或 24 个十六进制字符的字符
- 在 .NET 和 JavaScript 中存储一个字符需要多少字节
- 双字节字符文件名未正确显示
- 检测双字节字符
- 基于字节而不是字符计数的 Substr
- 如何使用javascript计算包含UTF8字符的字节长度
- 如何在javascript中使用toString(16)来获得用两个字符编写的字节
- 如何将Javascript字符串转换为八位字节/字符数组
- JS是否总是为每个字符使用两个字节来存储字符串?
- 字符编码- Javascript Blob对象保存为文件包含额外的字节
- 为什么这个代码有超过4个字符的3个八位字节