我想用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 %> ..."
}
你知道我怎么把值注入变量吗?
非常感谢!路易
1条答案
按热度按时间yzxexxkh1#
我自己没有使用过EJS,但是你可以尝试使用template literal
基本上你的object
value
key保存的是一个字符串试试这样的方法:
Here是另一篇关于如何在EJS中使用模板文字的文章
希望能帮上忙