(Node.js/Express) 将数据从控制器发送到哈巴狗视图然后由 Javascript 处理的最佳实践
(Node.js/Express) Best practice when sending data from controller to pug view which is then processed by Javascript
我是 Node.js/Express/Frontend 总体开发新手,我正在尝试了解如何更好地处理从控制器传递到哈巴狗视图的数据,然后由某些 JavaScript。
现在,这是我处理数据的方式:
objectController.js:
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 调用以获取你的图形数据然后你可以映射。这意味着您用于提供主页的服务器端代码将只呈现哈巴狗模板并发回 HTML、CSS 和 JS。然后,您的前端 JS 将命中一个专门用于检索图形数据的端点。
您可能还会发现,通过允许页面在浏览器中快速加载并在之后进行任何更长的数据处理过程,可以提供更好的用户体验。
所以您最终会得到 2 个 HTTP 调用和 2 个端点。第一个会渲染没有任何图形数据的哈巴狗模板。第二个将生成图形数据并将其以 JSON 格式发回,供您传递到图形库中。
我是 Node.js/Express/Frontend 总体开发新手,我正在尝试了解如何更好地处理从控制器传递到哈巴狗视图的数据,然后由某些 JavaScript。
现在,这是我处理数据的方式:
objectController.js:
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 调用以获取你的图形数据然后你可以映射。这意味着您用于提供主页的服务器端代码将只呈现哈巴狗模板并发回 HTML、CSS 和 JS。然后,您的前端 JS 将命中一个专门用于检索图形数据的端点。
您可能还会发现,通过允许页面在浏览器中快速加载并在之后进行任何更长的数据处理过程,可以提供更好的用户体验。
所以您最终会得到 2 个 HTTP 调用和 2 个端点。第一个会渲染没有任何图形数据的哈巴狗模板。第二个将生成图形数据并将其以 JSON 格式发回,供您传递到图形库中。