【发布时间】:2018-12-18 10:35:00
【问题描述】:
我一直在尝试找出一种更好的方法将变量从后端推送到前端。现在我做这样的事情。
我有一个 MVC 模式,所以在到达路线时
app.get('/fil', middleWare.isLoggedIn, user.fil)
... 槽节点对数据库进行一些查询,并传递数据。
exports.fil = async (req, res) => {
try {
faktura = await Lan.find().populate('client', 'namn kundnr')
res.status(200).render('pages/createInvoice', {
faktura: faktura
});
} catch (err) {
return res.status(500).send({
message: err.message || "Some error occurred while retrieving datas."
});
};
};
...它在 EJS(我喜欢 EJS)的帮助下生成页面,然后将其传递给客户端/用户。
在提供给客户端/用户的 .ejs 文件中,我添加以下内容
<script>
var fakturor = <%- JSON.stringify(faktura) %>;
</script>
这意味着我用完了变量并与 JS 一起使用它。
这就是我的问题出现的地方。这是一个好方法还是有其他方法来处理它?
我想一个想法是让用户直接从页面查询数据库,但在我的情况下,我相信用户这样做实际上并不会更好(用户将收到 100 条不同的行他们将能够过滤然后下载文件)
但是如果没有脚本标签,我还有其他方法可以做到这一点吗?就像我说的,我猜可以使用来自 JS/客户端的 ajax 调用,但你能用其他方式吗? EJS可以用其他方式吗?
【问题讨论】:
-
使用 response.json 并发送一个包含您要发送的有效负载的 Json 对象
-
@INDRESHKHANDELWAL,想详细说明一下吗? response.json?
-
response.json() 接受一个 json 对象并向其发送请求的 http 请求。因此,如果您想发送一个变量 x,那么可以通过这种方式完成 => response.json( {x: 值})
-
嗯。我会检查一下。感谢您的信息。你碰巧没有一个很好的链接让我可以阅读它?
标签: node.js mongodb express ejs