fs.writeFileSync写入空白文件

时间:2017-11-21 10:51:34

标签: javascript node.js fs

我使用fs将pdf文件写入磁盘,pdf文件包含7个包含内容的页面,但是当文件被写入时,它没有任何内容。整个文件都是空白的。以下是我正在使用的代码

npm install dropify --save

1 个答案:

答案 0 :(得分:3)

ggplot(data = inf, aes(x = COMPARTMENT, y = MI, fill = SPECIES)) + geom_bar(stat = "identity") + scale_y_continuous(expand = c(0, 0), limits = c(-0.1, 12.5), breaks = 2*c(0:6)) + theme_bw() + facet_grid(~COMP.COMP*REGION, switch = "x", scales = "free_x", space = "free_x") + theme(strip.text.x = element_text(size = 10)) + theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5, size = 10)) + theme(panel.spacing = unit(0, "lines"), strip.background = element_blank()) + scale_fill_manual(name = "SPECIES", values=c("#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2")) + ylab("Average infestation rate (%)") + xlab("Compartment by Comparable Groups by Region") + theme(panel.grid.major.y = element_line("lightgray"), panel.grid.major.x = element_blank()) + theme(axis.line = element_line(color = "black"), legend.position = "right", legend.title=element_text()) fs.writeFileSyncfs.writeSync之间存在混淆。

试试这个:

fs.writeFile

如果结果不符合您的预期,则应检查try { fs.writeFileSync(__dirname+'/wsdl/attachment.pdf', response); console.log('Success in writing file') } catch (err) { console.log('Error in writing file') console.log(err) } 变量的内容,并确保其填写正确。

参考文献:

https://nodejs.org/docs/latest-v8.x/api/fs.html#fs_fs_writefile_file_data_options_callback https://nodejs.org/docs/latest-v8.x/api/fs.html#fs_fs_writefilesync_file_data_options

我尝试重新创建您的代码,但我不确定您使用哪个库来提取数据。这个例子对我很好:

response

编辑:

我的代码无法正常工作,因为我忘了将编码设置为null。在请求的文档中,有这样的解释:

  

encoding - 用于响应数据的setEncoding的编码。如果   null,body作为Buffer返回。别的什么(包括   默认值undefined)将作为encoding参数传递   to toString()(意思是默认情况下这实际上是utf8)。 (注意:如果   你期望二进制数据,你应该设置encoding:null。)

来自https://www.npmjs.com/package/request#request-options-callback

可以安全地删除let request = require('request-promise'); let fs = require('fs'); request.get({ url: 'http://che.org.il/wp-content/uploads/2016/12/pdf-sample.pdf', encoding: null }) .then(response => { try { fs.writeFileSync(__dirname+'/attachment.pdf', response); console.log('Success in writing file') } catch (err) { console.log('Error in writing file') console.log(err) } }); 的编码。