(Node.js/Express)将数据从控制器发送到pug视图时的最佳实践,然后由Javascript进行处理
一般来说,我不熟悉Node.js/Express/Frontend development,我试图了解如何更好地处理从控制器传递到pug视图的数据,然后这些数据将由一些JavaScript处理 现在,我是如何处理数据的: objectController.js:(Node.js/Express)将数据从控制器发送到pug视图时的最佳实践,然后由Javascript进行处理,javascript,node.js,express,pug,cytoscape.js,Javascript,Node.js,Express,Pug,Cytoscape.js,一般来说,我不熟悉Node.js/Express/Frontend development,我试图了解如何更好地处理从控制器传递到pug视图的数据,然后这些数据将由一些JavaScript处理 现在,我是如何处理数据的: objectController.js: exports.objectDetails = function (req, res) { object.findById(req.params.id) .then(results => {
exports.objectDetails = function (req, res) {
object.findById(req.params.id)
.then(results => {
res.render('layout', { data: results });
})
.catch(error => {
// error
})
};
layout.pug:
doctype html
html(lang='en')
head
script(src='frontend.js')
script(type='text/javascript').
var myObject = !{JSON.stringify(data)}
frontend.js:
"use strict";
someFunction(myObject);
这是最佳实践还是有更好的方法
我试着寻找多个来源,这是我能找到的最好的一个
提前谢谢 您现在所做的方式目前仍然有效,因此这个问题有点模糊,但是如果您想要一种标准/更惯用的方法,那么我建议您从前端JS进行HTTP调用,以获取图形数据,然后您可以映射这些数据。这意味着您提供主页的服务器端代码只需呈现pug模板并返回HTML、CSS和JS。然后,前端JS将命中专门设计用于检索图形数据的端点 您还可能会发现,这样可以让页面快速加载到浏览器中,并在之后进行更长的数据处理过程,从而提供更好的用户体验
因此,您将得到两个HTTP调用和两个端点。第一种方法将在没有任何图形数据的情况下呈现pug模板。第二个将生成图形数据,并将其以JSON格式发送回图形库。如果您在pug模板中已经有可用的数据,为什么需要在前端进行任何处理?您不能通过pug模板完成所有需要的操作吗?定义“更好”@ElliotBlackburn我正在使用一个名为的可视化库,从我提取的数据创建一个节点网络。我需要能够将数据从渲染视图提取到处理节点网络的脚本上。@TGrif一种在保持可读性的同时,使应用程序在增长时不会失去性能的方法。我想我是在寻找设计模式