发布于 2015-11-26 03:28:19 | 379 次阅读 | 评论: 1 | 来源: PHPERZ

这里有新鲜出炉的7天学会Node.js,程序狗速度看过来!

Node.js 服务器端的JavaScript

Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用


前言

之前有个项目中使用到了一个前端的download.js库,主要是用来拼接内容然后生成一个.txt或者.csv等文件让用户下载,不过目前这个库不支持了chromesafariwebkit内核的浏览器了。而且下载的内容如果有中文字符的话还有乱码的现象。

用 Node.js 生成 csv 文件

想使用Node.js来生成 csv 文件的话,可以自己拼接好内容后通过fs.writeFile来写入一个文件。不过还是有个问题,如果有中文字符的还是会出现乱码的情况。

接下来就是介绍一下两个库可以解决我们的问题,一个是json2csv 可以通过json的数据去生成csv文件的内容,然后在fs.writeFile,另外一个库则是iconv-lite用来把内容的编码转换为GBK格式,这样一来就能够解决中文乱码的问题。

还有一个值得一提的,就是有其他的小伙伴会用iconv这个库,不过我发现我使用npm还是cnpm都安装不上,所以就使用了iconv-lite这个库。可以注意一下这个问题。

贴一个实例:

var json2csv = require('json2csv');
var iconv = require('iconv-lite');
var fs = require('fs');
var fields = ['field1', 'field2', 'field3']; // 这里的内容是不支持中文的。
var myData = {
    'field1': 'field1',
    'field2': 'field2',
    'field3': 'field3',
};
 
json2csv({ data: myData, fields: fields }, function(err, csv) {
  if (err) console.log(err);
  var newCsv = iconv.encode(csv, 'GBK'); // 转编码
  fs.writeFile('demo.csv', newCsv, function (err) {
    if (err) console.log(err);
    console.log('Saved done!');
  });
});


最新网友评论  共有(1)条评论 发布评论 返回顶部
zijx 发布于2016-08-31 10:30:10
感觉很厉害的样子
支持(0)  反对(0)  回复

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务