gpt4 book ai didi

mysql - 将sql文件传递给nodejs整体执行

转载 作者:行者123 更新时间:2023-11-29 18:36:36 25 4
gpt4 key购买 nike

我正在编写nodejs脚本,该脚本采用包含大量sql语句的sql文件来针对mysql实例执行。到目前为止,我已经写了两个 diff。 Node.js 函数从指定的 sql 文件中一次读入一个 sql 语句(将每个 sql 语句存储在 Nodejs 对象中,并迭代以一次传递一个语句),并针对 mysql 实例查询这些语句。这种方法适用于简单的 sql 查询,但是,我需要运行的查询又大又复杂(而且也是由多人编写的,因此结构各不相同),因此在运行这些复杂查询时,一次一条语句的方法会失败。

我偶然发现了nodejs的execsql包,我相信它需要整个sql文件作为参数,而不是一次查询一个语句(如果我错了,请纠正我),但一直无法将此包获取到工作(https://www.npmjs.com/package/execsql)。

var execsql = require('execsql'),
dbConfig = {
host: 'cloud-address',
user: 'db-user',
port: 3306,
password: 'user-pass'
},
sql = 'use test-db;',
sqlFile = __dirname + '/db.sql';
execsql.config(dbConfig)
.exec(sql)
.execFile(sqlFile, function(err, results){
console.log(results);
}).end();

callback(err, results);
^ TypeError: callback is not a function

任何关于应该实现什么nodejs包来做到这一点的帮助都是值得赞赏的(最终目标是这样我可以传入一个sql文件,该文件的查询类似于通过mysql-workbench shell查询文件)。

最佳答案

var execsql = require('execsql');
var callback = function(err,results){
if (err){
console.log("error is: ",err);
return;
}
console.log("results is: ",results);
}
var dbConfig = {
host: 'cloud-address',
user: 'db-user',
port: 3306,
password: 'user-pass'
},
sql = 'use test-db;',
sqlFile = __dirname + '/db.sql';
execsql.config(dbConfig)
.exec(sql)
.execFile(sqlFile, function(err, results){
console.log(results);
callback(err, results);
}).end();

回调(错误,结果); va dendro de la promesa,recuerda que Node es asíncrono

关于mysql - 将sql文件传递给nodejs整体执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45243869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com