NODEjs - 将数据从mysql写入文件

NODEjs - 将数据从mysql写入文件

问题描述:

我目前正在尝试使用节点,并且迄今为止它不错, 但我的问题是我查询数据库,然后得到结果。 但是当我尝试写文件我得到的错误,NODEjs - 将数据从mysql写入文件

我已经试过这样

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(); 
    }); 

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

在此先感谢

+0

检查权限。你得到什么错误? – shahmanthan9 2015-04-03 10:56:00

+0

权限是好的,我得到的数据,这只是写入文件时的错误,如果我做到了第一种方式我得到[对象对象],[对象对象],[对象对象],如果我做了第二种方式,我得到TypeError:未知的编码: 在Buffer.write(buffer.js:441:13) – user2115506 2015-04-03 11:01:48

+0

试试这个,可能会帮助你:http://*.com/questions/17188337/nodejs-csv-data-export-system- for-users – shahmanthan9 2015-04-03 11:09:19

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

你不是在写数组元素时写数组元素吗?

尝试

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) 
+0

嗨,谢谢你的答复,我会给你的代码尝试,它确实使感觉,但我也尝试了另一种方式,这是行得通的,我所做的是把结果放在一个变量 – user2115506 2015-04-09 14:31:30

+0

中,然后添加它的例子:var fite =''; ('C:test.txt',fite,function(err){if(err)){if(err)if(err )throw err; console.log('Saved!'); }); 但我打算给你的代码一个尝试,因为它是很好的了解不同的方式。再次感谢您 – user2115506 2015-04-09 14:32:14

+0

如果您发现有效,您可以添加自己的答案。 – Baart 2015-04-10 07:43:06

我已经找到一种方式来获得它,写入文件,当我得到的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!'); 
        }); 


    } 

,我想感谢那些ü帮助我,给了我其他的方法来尝试 非常感谢你