【发布时间】:2014-05-22 15:29:00
【问题描述】:
我在我的 nodejs/express 应用程序中使用 sqlite3 数据库。我想在启动 express 服务器时将 .sql 文件导入到 sqlite。由于似乎没有办法使用 node-sqlite3 包导入,我正在尝试使用 exec 函数。
当我从命令行运行这两个命令时,它们都可以工作:
cat db.sql | sqlite3 mydb.db sqlite3 mydb.db
但是,当我尝试通过 nodejs exec 函数运行这些命令时,会创建 mydb.db 文件,但它是空的。这是我的代码:
var exec = require('child_process').exec;
child = exec('cat db.sql | sqlite3 mydb.db',
function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
);
当我启动我的快递服务器时,我没有得到任何输出: Express 服务器监听 ip:localhost 端口:3000 标准输出: 标准错误:
创建了db文件,但文件大小为0。当我用sqlite打开它时,mydb.db中没有表
我尝试了上面显示的两种方法,但它们都不起作用。我也尝试过使用 spawn ,但也没有成功。如何将 sql 文件导入 nodejs 中的新数据库?
【问题讨论】: