从 node.js 在 mysql 中创建存储过程

create stored procedure in mysql from node.js

在我的项目中,我必须在注册完成后立即配置数据库。 我有一个 dump.sql 文件,我可以使用 this 库从 .sql 文件导入和创建所有需要的表 但是我的存储过程没有导入到我的数据库中。 这是一个很大的过程。有没有办法从 node.js 创建存储过程。我试过 this 但出现错误。任何帮助将不胜感激。

TypeError: StoredProcedures is not a constructor

OSS 的美妙之处在于可以发布任何内容。非常感谢 mysql-import 但没有什么能改变它每周有 840 次下载的事实。虽然每周 840 次下载并没有错,但您本质上是该软件包的测试员。根据您的目标和时间限制,这可能会很好。

为了回答您的问题,MySQL 中转储和恢复数据库的标准方法是 mysqldump 工具。比 mysql-import.

更多人使用的工具

您可以直接从节点创建外部进程以通过以下方式管理它 child_process.exec

然后你可以用类似于下面的方式执行你的转储和恢复命令:

const exec = require('child_process').exec;
exec('mysqldump -u root -p dbname > dump.sql');

我得到了这个查询的解决方案并回答了它,以便将来可以帮助其他人。 我正在使用 require('require-sql'); 导入我的 sp.sql 文件 然后将 \n\r 替换为 space。 它可以工作并在各自的数据库中创建存储过程。

 var query = require(path.join(_dirname, '/app/helper/sql/sp_distribute_all_data.sql'));
        try {
            conn(dbname).query(query.replace(/\r?\n|\r/g, " "), function (err, result) {
                if (err) {
                    console.log("ERROR:::", err);
                    resolve({
                        status: false,
                        feedback: err
                    });
                } else {
                    console.log("RESULT:::", result);
                    resolve({
                        status: true,
                        companyId: companyId,
                        feedback: 'Company configured successfully !!'
                    });
                }

            });
        } catch (error) {
            var stack = error.stack;

            console.log(stack);
        }