【发布时间】:2019-07-27 14:29:31
【问题描述】:
我是 web/服务器开发的新手,我对从 ejs 调用代码有点困惑。我有一张桌子,我想在每一行都有按钮。我希望在单击按钮后它会从 MongoDB 中删除特定项目(我使用的是 Mongoose、NodeJS、Bootstrap Table、EJS)。 这是我的代码和按钮
'<a class="remove" href="javascript:void(0)" title="Remove">',
'<i class="fa fa-trash"></i>',
'</a>'
是删除行的按钮:
<table id="table">
<thead>
<tr>
<th data-field="name">Device name</th>
<th data-field="receivingKey">Receiving key</th>
<th data-field="operate" data-formatter="operateFormatter" data-events="operateEvents"></th>
</tr>
</thead>
</table>
<script>
var $table = $('#table');
var data = <%- JSON.stringify(devices) %>;
function operateFormatter(value, row, index) {
return [
'<a class="like" href="javascript:void(0)" title="Like">',
'<i class="fa fa-heart"></i>',
'</a> ',
'<a class="remove" href="javascript:void(0)" title="Remove">',
'<i class="fa fa-trash"></i>',
'</a>'
].join('')
}
window.operateEvents = {
'click .like': function (e, value, row, index) {
alert('You click like action, row: ' + JSON.stringify(row))
},
'click .remove': function (e, value, row, index) {
// I want the delete action here.
}
}
$(function () {
$('#table').bootstrapTable({ data: data });
});
</script>
<% } else { %>
<div>You don't have any connected devices.</div>
<% } %>
</div>
问题是,我不知道该怎么做。我可以在 nodejs 后端编写代码,但我不知道如何从 EJS 调用它。我尝试使用 app.local 将函数传递给那里,但是由于内部的异步调用而引发错误。
如果您认为这段代码不好,我可以使用不同的代码,也请告诉我。谢谢。
【问题讨论】:
-
您需要使用类似 express 的方式在 web api 上公开后端,然后使用类似 ajax expressjs.com/en/api.html#app developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest 的方式从前端调用 web api
-
参考一些材料,从你的角度尝试一些东西,如果你遇到任何问题,发布你的问题。参考programmerblog.net/nodejs-mongodb-tutorial
标签: javascript mongodb ejs