首页 > 解决方案 > 如何在不基于参数获取的情况下将 JSON 发送到前端?

问题描述

我正在尝试制作一个基于 URL / 参数显示帖子的快速模板。类似于我们在 StackOverflow 上的内容(我有主题而不是问题 + id): https://stackoverflow.com/questions/111111/ 而且我有: localhost:8003/act/random/111111/

authController.act 从 MySQL 请求并返回 post 数据。这是我的路线:

router.get('/act/:topic/:id/:title?', authController.isLoggedIn, (req, res, next) => {

  const promise = authController.act(req.params.topic, req.params.id);
  promise.then((results) => {
    res.render('act', {
      message1: 'some message', results: results
    });
  });

});

而不是我想在我的 HTML/EJS 文件中使用它:

<body onload="init();loadAct(results)">

我的结果成功传递到 EJS 文件,可以按照<%- results %>Kapil Sharma 的建议像这样使用。现在我需要弄清楚为什么它在 JS 中不起作用。

Uncaught ReferenceError: results is not defined
    onload http://localhost:8003/act/random/127/:1

编辑:这似乎解决了我的问题。如果这没有帮助,昆汀还在下面提出了第二种解决方案。

<body onload="init();loadAct(JSON.parse('<%= JSON.stringify(results) %>'));" >

标签: javascriptnode.jsjsonexpressnodejs-server

解决方案


推荐阅读