Nodejs中读取中文文件编码问题、发送邮件和定时任务实例


Posted in NodeJs onJanuary 01, 2015

关于nodejs读取中文文件真是折腾了不少时间,网上各种方案,最后没有一个适用我,好在解决了。

下面的三个知识点都是从项目中抽出的,要单独运行脚本的话需要用全局模式来安装模块,比如安装中文转换模块(后续其它的也需要这么做):

Nodejs中读取中文文件编码问题、发送邮件和定时任务实例

npm install -g iconv-lite
npm install -g nodemailer
npm install -g node-schedule

1、nodejs读取中文文件编码问题

准备一个文本文件(当然也可以是csv文件等)test.txt和text.csv,nodejs文件test.js如下:

var iconv = require('iconv-lite');

var fs = require('fs');
var fileStr = fs.readFileSync('D:\\test.csv', {encoding:'binary'});

var buf = new Buffer(fileStr, 'binary');

var str = iconv.decode(buf, 'GBK');
console.log(str);

直接读文件的话是乱码,不信你可以试试。需要先统一用二进制编码方式读取,然后再用GBK解码。运行结果如下:

Nodejs中读取中文文件编码问题、发送邮件和定时任务实例

更多参见:iconv-lite

2、nodejs发送邮件

啥都不想说,直接上代码,简单易懂:

var nodemailer = require('nodemailer');
//配置邮件

var transporter = nodemailer.createTransport('SMTP',{

    service: '163qiye',

    auth: {

        user: 'zhoujie0111@126.com',

        pass: '123456',

    }

});
//发送邮件

var sendmail = function(html){

    var option = {

            from:"zhoujie0111@126.com",

            to:"zhoujie0111@126.com,zhoujie0111@126.com", 

            cc:'zhoujie0111@126.com'

        }

    option.subject = '我5年前制定的五年计划'

    option.html= html;

    transporter.sendMail(option, function(error, response){

        if(error){

            console.log("fail: " + error);

        }else{

            console.log("success: " + response.message);

        }

    });

}
//调用发送邮件

sendmail("邮件内容:<br/>My goal for 2015 is to accomplish the goals of 2014 which I should have done in 2013 because I made a promise in 2012 & planned in 2011!");

更多参见:nodemailer

3、nodejs定时任务

这个用法很多,如果熟悉linux crontab语法,这个就更简单了。我邹的这个例子很和谐,呵呵:

var schedule = require('node-schedule');
/*方式一:

    指定某一个时间执行任务

*/

var schedule = require('node-schedule');

var date = new Date(2014, 12, 31, 16, 1, 0);
var j = schedule.scheduleJob(date, function(){

    console.log('2015 will soon come.');

});
/*方式二:

    在每个小时的多少分钟执行

*/

var rule = new schedule.RecurrenceRule();

rule.minute = 1;

var j = schedule.scheduleJob(rule, function(){

    console.log('I\'m very happy now!');

});
/*方式三:

    类似crontab

*/

var j = schedule.scheduleJob('1 * * * *', function(){

    console.log('It\'s time to 下午茶!');

});

运行结果更和谐,呵呵:

Nodejs中读取中文文件编码问题、发送邮件和定时任务实例

不要奇怪为什么第一个计划任务没有执行,因为这个是格林威治时间,它需要等8个小时后再执行。呵呵~~

更多参见:node-schedule

听了一天的悲伤的音乐,越听越开心。哈哈

NodeJs 相关文章推荐
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
Nov 18 NodeJs
Windows系统中安装nodejs图文教程
Feb 28 NodeJs
NodeJS创建基础应用并应用模板引擎
Apr 12 NodeJs
nodejs基础知识
Feb 03 NodeJs
NodeJs测试框架Mocha的安装与使用
Mar 28 NodeJs
nodejs制作爬虫实现批量下载图片
May 19 NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 NodeJs
NodeJS 实现多语言的示例代码
Sep 11 NodeJs
Nodejs异步流程框架async的方法
Jun 07 NodeJs
nodejs提示:cross-device link not permitted, rename错误的解决方法
Jun 10 NodeJs
nodejs对mongodb数据库的增加修删该查实例代码
Jan 05 NodeJs
nodejs nedb 封装库与使用方法示例
Feb 06 NodeJs
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 #NodeJs
nodejs中实现路由功能
Dec 29 #NodeJs
NodeJS制作爬虫全过程(续)
Dec 22 #NodeJs
NodeJS制作爬虫全过程
Dec 22 #NodeJs
nodejs中操作mysql数据库示例
Dec 20 #NodeJs
轻松创建nodejs服务器(10):处理上传图片
Dec 18 #NodeJs
轻松创建nodejs服务器(10):处理POST请求
Dec 18 #NodeJs
You might like
php做下载文件的实现代码及文件名中乱码解决方法
2011/02/03 PHP
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
php单例模式实现方法分析
2015/03/14 PHP
Mootools 1.2教程 事件处理
2009/09/15 Javascript
javascript 函数参数限制说明
2010/11/19 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
上传文件返回的json数据会被提示下载问题解决方案
2014/12/03 Javascript
浅析JavaScript声明变量
2015/12/21 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
angular分页指令操作
2017/01/09 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
package.json配置文件构成详解
2019/08/27 Javascript
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
Python中创建二维数组
2018/10/17 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
python装饰器代码深入讲解
2021/03/01 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
Urban Outfitters美国官网:美国生活方式品牌
2016/08/26 全球购物
StubHub德国:购买和出售门票
2017/09/06 全球购物
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
水电工岗位职责
2014/02/12 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
学校联谊协议书
2014/09/16 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS