javascript - 用 javascript 模板文字推断变量的正确语法?
问题描述
关于模板文字的正确语法,有人可以为我指出正确的方向吗?
我有以下代码(没有模板文字,工作得很好):
const dbUrl = 'localhost:27017/imgManager';
mongoose.connect('mongodb://' + dbUrl, { useNewUrlParser: true });
现在我想useNewUrlParser: true
输入一个变量:
const dbUrl = 'localhost:27017/imgManager',
dbOptions = 'useNewUrlParser: true';
mongoose.connect('mongodb://' + dbUrl, { dbOptions });
当然不起作用,mongoose.connect()
抱怨它没有dbOptions
:
$ node server.js
Server up: http://localhost:3300
the options [dbOptions] is not supported
我想模板文字是要走的路,但是正确的语法是什么?我尝试了以下,但没有一个工作:
`mongoose.connect('mongodb://' + dbUrl, { ${dbOptions} });`
mongoose.connect(`mongodb://${dbUrl}, { ${dbOptions} }`);
mongoose.connect(`mongodb:\/\/${dbUrl}, { ${dbOptions} }`);
任何想法 ?
解决方案
模板文字不能在任意位置工作,它们不会创建任意 JS 语法。(没有标签)它们只创建字符串,并且只创建一个值,而不会同时创建两个参数。作为选项,您需要传递一个对象:
const dbUrl = 'localhost:27017/imgManager',
dbOptions = { useNewUrlParser: true };
mongoose.connect(
`mongodb://${ dbUrl }`, // first argument
dbOptions // second argument
);
如果您真的将选项作为字符串获取,则需要将它们解析为一个对象,例如:
const dbUrl = 'localhost:27017/imgManager',
dbOptions = '"useNewUrlParser": true';
mongoose.connect(
`mongodb://${ dbUrl }`, // first argument
JSON.parse(`{${ dbOptions }}`) // second argument. The string is '{' + dbOptions + '}'
);
推荐阅读
- latex - 使用分段的水平线来指示表格中的列组
- jenkins - Jenkins 无法连接到 Gitlab 存储库
- pagespeed - 令人难以置信的高初始服务器响应时间
- reactjs - 如何设置 TextField 的最小值和最大值?
- python - Python Dictionary 将行转置为列
- java - 如何用其他元音替换字符串中的元音以进行加密?
- intellij-idea - IDEA中如何通过目录名定位特定文件?
- typescript - loopback - 失败,状态码为 500。TypeError:this.workflowService.createNotification 不是函数
- python - 当我尝试使用 pip 安装软件包时出现错误
- node.js - Express 应用程序中的“npm run build”命令在导入时与 Typescript 和 React Native 发生冲突