convert nonbuffer data to string in fs.writeFile/Sync

Fixes #657.
This commit is contained in:
Daniel Pihlström 2011-02-11 03:35:39 +01:00 committed by koichik
parent 2fe780b36c
commit fa829b0fd3
2 changed files with 23 additions and 3 deletions

View File

@ -566,7 +566,7 @@ fs.writeFile = function(path, data, encoding_, callback) {
if (openErr) {
if (callback) callback(openErr);
} else {
var buffer = Buffer.isBuffer(data) ? data : new Buffer(data, encoding);
var buffer = Buffer.isBuffer(data) ? data : new Buffer('' + data, encoding);
writeAll(fd, buffer, 0, buffer.length, callback);
}
});
@ -575,7 +575,7 @@ fs.writeFile = function(path, data, encoding_, callback) {
fs.writeFileSync = function(path, data, encoding) {
var fd = fs.openSync(path, 'w');
if (!Buffer.isBuffer(data)) {
data = new Buffer(data, encoding || 'utf8');
data = new Buffer('' + data, encoding || 'utf8');
}
var written = 0;
var length = data.length;

View File

@ -28,6 +28,7 @@ var filename = join(common.fixturesDir, 'test.txt');
common.error('writing to ' + filename);
var n = 220;
var s = '南越国是前203年至前111年存在于岭南地区的一个国家国都位于番禺疆域包括今天中国的广东、' +
'广西两省区的大部份地区,福建省、湖南、贵州、云南的一小部份地区和越南的北部。' +
'南越国是秦朝灭亡后由南海郡尉赵佗于前203年起兵兼并桂林郡和象郡后建立。' +
@ -71,11 +72,30 @@ fs.writeFile(filename2, buf, function(e) {
});
});
// test that writeFile accepts numbers.
var filename3 = join(common.fixturesDir, 'test3.txt');
common.error('writing to ' + filename3);
fs.writeFile(filename3, n, function(e) {
if (e) throw e;
ncallbacks++;
common.error('file3 written');
fs.readFile(filename3, function(e, buffer) {
if (e) throw e;
common.error('file3 read');
ncallbacks++;
assert.equal(Buffer.byteLength('' + n), buffer.length);
});
});
process.addListener('exit', function() {
common.error('done');
assert.equal(4, ncallbacks);
assert.equal(6, ncallbacks);
fs.unlinkSync(filename);
fs.unlinkSync(filename2);
fs.unlinkSync(filename3);
});