NODEjs - 将数据从mysql写入文件

时间:2015-04-03 10:50:15

标签: mysql node.js

我目前正在尝试使用节点,到目前为止它很好, 但我的问题是我查询数据库,我得到了结果。 但是当我尝试写文件时我会收到错误,

我试过这种方式

fs.writeFile('table.txt', rows, 
              function (err) {
                   if (err) throw err;
                   console.log('Saved!');
}); 

和另一种方式

var stream = fs.createWriteStream("my_file.txt");
 stream.once('open', function(fd) {
     for (var i = 0;i < rows.length; i++) {
           stream.write('test: ', rows[i].i);
      }

      stream.write("My first row\n");
      stream.write("My second row\n");
      stream.end();
  });

我不知道我做错了什么,我现在花了几个小时看 任何建议或想法

提前致谢

2 个答案:

答案 0 :(得分:0)

第一种写作方法应该没问题。

你在编写数组元素时是不是想编写它?

尝试

fs.writeFile('table.txt', rows.join('\n'), function (err) {
     if (err) throw err;
     console.log('Saved!');
}); 

如果这不起作用,请写下行的输出。

console.log(typeof(rows))

关于你的第二种写作方法,第二个“我”在你的行中似乎是一个错字,可能会导致意想不到的结果。

stream.write('test: ', rows[i].i)

答案 1 :(得分:0)

我找到了一种方法来获取它,写入文件,当我得到SQL结果时,我循环通过它将它附加到变量然后我写入文件这里是一个例子

connection.query('SELECT * FROM Table', 
     function(err, rows, fields){ if(err)   {
         throw err;
     }else{

       var fite = '';
       for (var i in rows) {
          fite += rows[i].field1 + '\t';
          fite += rows[i].field2 + '\n';
       }

       fs.writeFile( 'C:\\folder\\test.txt', fite, function (err) {
                    if (err) throw err;
                         console.log('Saved!');
                    });


    }

我要感谢那些帮助过我的人并给了我其他尝试的方法 非常感谢你