删除 mongodb 中的请求不起作用,我正在使用 expressjs 服务器和 nodejs



我正在尝试发送删除请求以通过 mongodb 中的 id 删除项目,但 t 不起作用。我已经搜索并尝试了几种堆栈溢出解决方案,但没有成功。

我试过:

app.delete('/delete', (req,res) => {
var id = req.params._id;
var objectId = require("mongodb").ObjectId
MongoClient.connect(url, {useNewUrlParser: true}, (err, db) => { 
if(err) throw err;
var dbo = db.db("MusicPlayer");
dbo.collection("Musician").deleteOne({"_id": new mongodb.objectId(id)}, (err, result) => {
if(err) throw err;
db.close();
res.redirect('/')
});
});
})
And :
app.delete('/delete', (req,res) => {
var id = req.params._id;
var objectId = require("mongodb").ObjectId
MongoClient.connect(url, {useNewUrlParser: true}, (err, db) => { 
if(err) throw err;
var dbo = db.db("MusicPlayer");
dbo.collection("Musician").deleteOne({"_id": mongo.objectId(id)}, (err, result) => {
if(err) throw err;
db.close();
res.redirect('/')
});
});
})
app.delete('/delete', (req,res) => {
var id = req.params._id;
var objectId = require("mongodb").ObjectId
MongoClient.connect(url, {useNewUrlParser: true}, (err, db) => { 
if(err) throw err;
var dbo = db.db("MusicPlayer");
dbo.collection("Musician").deleteOne({"_id": objectId(id)}, (err, result) => {
if(err) throw err;
db.close();
res.redirect('/')
});
});``
})

我在控制台中没有收到错误,控制台也没有实际记录任何内容,甚至是简单的字符串。

确定请求命中路由器后,您可以尝试此操作吗? 您正在从 req.params 读取 id,因此您必须在路由 url 中包含 :_id。

另外,我认为ObjectId必须是ObjectID。 你应该在 deleteOne 中使用 {"_id": new objectId(id(}。

app.delete('/delete/:_id', (req,res) => {
console.log(req.params);
var id = req.params._id;
var objectId = require("mongodb").ObjectID;
MongoClient.connect(url, {useNewUrlParser: true}, (err, db) => { 
if(err) throw err;
var dbo = db.db("MusicPlayer");
dbo.collection("Musician").deleteOne({"_id": new objectId(id)}, (err, result) => {
if(err) {
console.log(err);
throw err;
}
console.log(result);
db.close();
res.redirect('/')
});
});
})

最新更新