如何发送ObjectID与Ajax到后端(Node.JS)
字体结束代码(HTML,Javascript)我想使删除button,但我不能发送ObjectID与AJAX
var retName = $(this).data("row-id"); $.ajax({ type: "POST", url: "/delete", data: {'id' : ObjectId(retName)} , success: function() { }, error: function(textstatus, errorThrown) { alert('text status' + textstatus + ', err ' + errorThrown); } });
后端代码(Node.js)
app.post('/delete', function(require, response) { db.open(function(error, db) { db.collection('infodb', function(error, collection) { var doc = require.body; console.log(ObjectId(doc)) collection.remove(doc, function() { db.close(); }); }); }); });
非常感谢你
我认为在你的NodeJS中,应该是这样的
app.post('/delete', function(require, response) { db.open(function(error, db) { db.collection('infodb', function(error, collection) { var doc = require.body.id; console.log(doc) collection.remove(doc, function() { db.close(); }); }); }); });
因为你想要参数id
。
另外,因为它已经是对象ObjectId
我不明白为什么你会得到该对象的ID。
如果这不起作用,你尝试传递另一个variables,而不是你的ObjectId?
我不知道你为什么使用“POST”方法删除数据。 为什么不能定义删除方法并给api一个正确的名字。 由于API名称不能是一个动词,在这里删除是动词。 你可以像这样定义你的代码,我将把这个API名称作为“用户”。 你可以改变它
var retName = $(this).data("row-id"); $.ajax({ type: "DELETE", //Delete method here url: '/user/'+retName , success: function(data) { console.log(data); }, error: function(textstatus, errorThrown) { alert('text status' + textstatus + ', err ' + errorThrown); } });
并在节点js
app.delete('/user/{id}', function(req, response) { console.log(req.params.id); //this will give you id db.open(function(error, db) { db.collection('infodb', function(error, collection) { //var doc = require.body; console.log(ObjectId(doc)) collection.remove(doc, function() { db.close(); }); }); }); });