javascript - (Node.js/Express) 将数据从 Controller 发送到 pug View 然后由 Javascript 处理的最佳实践

标签 javascript node.js express pug cytoscape.js

一般来说,我是 Node.js/Express/Frontend 开发的新手,我正在尝试了解如何更好地处理从 Controller 传递到 pug View 的数据,然后这些数据将由一些 JavaScript 处理。

现在,这是我处理数据的方式:

objectController.js:

exports.objectDetails = function (req, res) {
    object.findById(req.params.id)
        .then(results => {
            res.render('layout', { data: results });
        })
        .catch(error => {
            // error
        })
};

布局.pug:

doctype html
html(lang='en')
  head
    script(src='frontend.js')
    script(type='text/javascript').
      var myObject = !{JSON.stringify(data)}

前端.js:

"use strict";
someFunction(myObject);

这是最佳实践还是有更好的方法?

我尝试查看多个来源,这是我能找到的最好的来源。

提前致谢。

最佳答案

你现在所做的方式目前有效,所以问题有点模糊,但如果你想要一个标准/更惯用的方法,那么我建议从你的前端 JS 进行 HTTP 调用以获取你的图形数据然后可以贴图。这意味着您用于提供主页的服务器端代码将只呈现哈巴狗模板并发回 HTML、CSS 和 JS。然后,您的前端 JS 将命中一个专门用于检索图形数据的端点。

您可能还会发现,通过允许页面在浏览器中快速加载并在之后进行任何更长的数据处理过程,可以提供更好的用户体验。

因此,您最终会得到 2 个 HTTP 调用和 2 个端点。第一个会渲染没有任何图形数据的哈巴狗模板。第二个将生成图形数据并将其以 JSON 格式发回,以便您传递到图形库中。

关于javascript - (Node.js/Express) 将数据从 Controller 发送到 pug View 然后由 Javascript 处理的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56689126/

相关文章:

javascript - ng-show 在隐藏之前是可见的

java - GCM 不会在登录时向离线用户发送推送通知...不知道我错过了什么?

node.js - 如何在 Node.js 中使用 Firebase 在后端获取当前用户?

javascript - Node.js npm 启动错误

json - Node Express 和 JSON 响应格式

javascript - 插入 DOM 时图像闪烁

javascript - 如何删除回车键功能

java - 如何在 java(struts) 中保留下拉列表的选定值

node.js - Graphql类型-graphql如何传递一组对象突变

html - 如何解决nodejs中write after end错误?