javascript - 如何将 JavaScript 字符串转换为 node.js 中的可执行代码
问题描述
我已将查询保存在数据库中。我可以将查询作为字符串。
INSERT INTO alertsV SET Instance_ID = ${body.add.Instance_ID}
但${body.add.Instance_ID}
不是用价值代替。
预期结果应该是INSERT INTO alertsV SET Instance_ID = 1234
我正在使用nodejs。请帮我解决这个问题。这是功能。
saveFormData: async function (req, res) {
let form_id = parseInt(req.body.form_id);
let body = req.body.form_data;
let saveQuery = await sails.orientDb.command('select actions.save as
saveQuery from form where form_id=' + form_id).one();
saveQuery = saveQuery.saveQuery; // i can get string here 'INSERT INTO alertsV SET Instance_ID = ${body.add.Instance_ID}'
let result = await sails.orientDb.command(saveQuery).one();
return res.json(result);
}
解决方案
您可以在模板文字反引号中包装一个字符串并将其传递eval
给运行字符串插值:
saveQuery = eval('`' + saveQuery.saveQuery + '`');
const a = 10;
const str = 'test ${a} test';
console.log(eval('`' + str + '`'));
/*
if it's required to wrap the interpolated value into a quotes,
you can do that by wrapping the embedded expression, prior to interpolation:
*/
console.log(eval('`' + str.replace(/(\${.*})/, '\'$1\'') + '`'));
推荐阅读
- javascript - 我的网站在 chrome 上的欺骗性网站提前警告
- python - 如何在不按 kivymd 按钮的情况下自动从 MDTextfield 获取数据
- r - Legend position based on coordinates in ggplot2
- python - excel文件中的每两列被分成多个csv文件
- python-3.x - 发生异常:IndexError list index out of range, line 5, in module file_path - sys.argv[1] Python & PyPDF2
- gitlab - Packer 在 Gitlab-runner 上执行时失败
- javascript - 世博会背景获取未运行
- imagemagick - Imagemagick - 逆
- python - 按值排序后如何按字母顺序对字典的键进行排序?
- flutter - 如何在 Flutter 中使用自定义应用栏和图像创建 SliverAppBar?