微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

参数化表名称Node.js / mySQL?

如何解决参数化表名称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 举报,一经查实,本站将立刻删除。