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

dldeef67  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(96)

我想用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 %> ..."
}

你知道我怎么把值注入变量吗?
非常感谢!路易

yzxexxkh

yzxexxkh1#

我自己没有使用过EJS,但是你可以尝试使用template literal
基本上你的objectvaluekey保存的是一个字符串
试试这样的方法:

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

Here是另一篇关于如何在EJS中使用模板文字的文章
希望能帮上忙

相关问题