如何解决参数化表名称Node.js / mySQL?
因此,我需要三个MysqL数据库表,以便能够从查询者中添加记录。我不想只编写三个单独的函数,而只想拥有一个高效的函数,它可以根据输入来完成全部三个函数。
系统会询问用户他们想要做什么,而开关/案例将使用他们需要回答的一系列询问者问题来运行第一个功能
switch (response.toAdd) {
case "New Employee":
return addAcme(empQ);
case "New Department":
return addAcme(deptQ);
case "New Role":
return addAcme(roleQ);
const addAcme = (choice) => {
return inquirer.prompt(choice)
.then(response => {
addToDB(response);
});
}
但是当我到达这里时,我遇到了问题。显然表名是雇员不是?因此它不适用于部门/角色。我需要一种将其作为变量进行跟踪并将其传递的方法,以便使表名也具有动态性,但是我不确定该如何处理?
const addToDB = acmeRecord => {
connection.query("INSERT INTO employees SET ?",acmeRecord,(err,results) => {
if (err) throw err;
mainMenu();
})
}
解决方法
您可以将表名作为参数添加到函数中
const addToDB = (tablename,record) => {
connection.query(`INSERT INTO ${tablename} SET ?`,record,(err,results) => {
if (err) throw err;
mainMenu();
})
}
然后这样称呼
switch (response.toAdd) {
case "New Employee":
return addACME("employees",empQ);
case "New Department":
return addACME("<department_table_name>",deptQ);
case "New Role":
return addACME("<role_table_name>",roleQ);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。