使用 mongoldb、mongoose、jade 和 express 通过按钮单击删除条目
Posted
技术标签:
【中文标题】使用 mongoldb、mongoose、jade 和 express 通过按钮单击删除条目【英文标题】:Deleting an entry through a button click using mongoldb, mongoose, jade and express 【发布时间】:2016-07-27 19:16:56 【问题描述】:所以我无法弄清楚如何通过单击视图中的按钮来删除数据库中的条目。逻辑对我来说没有意义。我的观点是这样的:
如何让每个按钮连接到每个条目?我将在下面列出我的视图和路线代码,以便您浏览它。
翡翠
extends ../userLayout
block localStyles
link(rel='stylesheet', href='/stylesheets/usersPage/users.css')
block content
.container
.users.col-md-11.col-xs-12.table-responsive
h1 Current Users
form.form(method="post" action="/users/view")
table.col-xs-12
tr
th Name
th Username
th
each user in users
tr
td= user.name
td= user.username
td
button.btn.btn-danger.col-xs-12 X
用户路线
router.post('/view', function(req, res, next)
//***potential delete code
userSchema.remove( name: 'reg' , function (err)
if (err) return handleError(err);
// removed!
);
);
就像我说的那样,我的大问题只是让按钮删除某个条目背后的逻辑。任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:执行此操作的一种方法是在每个按钮中设置要删除的文档的 ID。
//jade
td
button.remove-doc.btn.btn-danger.col-xs-12(data-id="#user.id)") X
并添加一个事件监听器来发送一个ajax请求来删除用户:
<script>
$('buttons.remove.doc').on('click', function()
var userId = $(this).attr('data-id');
$.ajax(
method: "POST",
url: "/users/delete",
data: "userId": userId,
success: function(result)
if(/* check if it is ok */)
location.reload();
)
);
</script>
在节点中你会得到这样的东西:
app.post('/users/delete', function(req, res, next)
var userId = req.body.userId || req.query.userId;
userSchema.remove(_id: userId, function(err, res)
if (err) res.json("err": err); else res.json(success: true);
);
);
【讨论】:
以上是关于使用 mongoldb、mongoose、jade 和 express 通过按钮单击删除条目的主要内容,如果未能解决你的问题,请参考以下文章
Express JS、Mongoose JS 和 Jade 中的 Textarea 换行符
比较 Mongoose 对象 ID 时,if 语句在 Jade 中不起作用
[js高手之路]Node.js+jade+mongoose实战todolist(分页,ajax编辑,删除)
[js高手之路]Node.js+jade+express+mongodb+mongoose+promise实现todolist