从数据库中检索文本并将 EJS 数据注入其中

问题描述 投票:0回答:1

我想用 EJS 变量将文本保存到我的数据库 (MongoDB) 中,然后通过 Ajax 检索它,但我不知道如何注入 EJS 变量的值。

目前,检索到视图中的文本保持“Hello <%= booking.nameOfGuest %>, blablablabla”而不是“Hello Louis, blablablabla”。 目标是使自动消息可由用户自定义并预填充文本区域。

Ajax 部分(工作)

<script>
    $('select').on('change', function (e) {
      // Change language
      var optionSelected = $("option:selected", this);
      var valueSelected = this.value;

      $.ajax({
        url: "../retrieveParameter",
        type: "get",
        data: { name: valueSelected + "_message_sendkey" },
        success: function(data) {
          $("#message-accessCode").val(data.value);
        },
        error: function(data) {
        }
      });
    });
  </script>

控制器部分(工作)

const Parameter = require("../model/parameter");

exports.retrieveParameter = async (req, res) => {
    try {
        const parameter = await Parameter.findOne({ name: req.body.name });
        res.json({ value: parameter.value });
    } catch (err) {
        console.log(err);
    }
};

我的数据库中的文档示例

{
  "_id": {
    "$oid": "642ee81165040a00eae95575"
  },
  "name": "fr_message_sendkey",
  "__v": 0,
  "value": "Hello <%= booking.nameOfGuest %> ! \nThank you for your booking <%= booking.code %> ..."
}

你知道我如何将值注入我的变量吗?

非常感谢! 路易

javascript node.js ejs
1个回答
0
投票

我自己没有使用过 EJS,但你可以尝试使用 template literal

基本上你的 object

value
key 拿着一根绳子

尝试这样的事情:

{
  "_id": {
    "$oid": "642ee81165040a00eae95575"
  },
  "name": "fr_message_sendkey",
  "__v": 0,
  "value": `Hello ${<%= booking.nameOfGuest %>} ! \nThank you for your booking ${<%= booking.code %>} ...`
}

这里是另一篇关于如何在 EJS 中使用模板字面量的文章

希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.