国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Nodejs中讀取中文文件編碼問題、發(fā)送郵件和定時任務實例

2019-11-20 13:31:33
字體:
來源:轉載
供稿:網(wǎng)友

關于nodejs讀取中文文件真是折騰了不少時間,網(wǎng)上各種方案,最后沒有一個適用我,好在解決了。

下面的三個知識點都是從項目中抽出的,要單獨運行腳本的話需要用全局模式來安裝模塊,比如安裝中文轉換模塊(后續(xù)其它的也需要這么做):

復制代碼 代碼如下:

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

直接讀文件的話是亂碼,不信你可以試試。需要先統(tǒng)一用二進制編碼方式讀取,然后再用GBK解碼。運行結果如下:

更多參見:iconv-lite

2、nodejs發(fā)送郵件

啥都不想說,直接上代碼,簡單易懂:

復制代碼 代碼如下:

var nodemailer = require('nodemailer');

//配置郵件
var transporter = nodemailer.createTransport('SMTP',{
    service: '163qiye',
    auth: {
        user: 'zhoujie0111@126.com',
        pass: '123456',
    }
});

//發(fā)送郵件
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);
        }
    });
}

//調用發(fā)送郵件
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');

/*方式一:
    指定某一個時間執(zhí)行任務
*/
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.');
});

/*方式二:
    在每個小時的多少分鐘執(zhí)行
*/
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 下午茶!');
});

運行結果更和諧,呵呵:

不要奇怪為什么第一個計劃任務沒有執(zhí)行,因為這個是格林威治時間,它需要等8個小時后再執(zhí)行。呵呵~~

更多參見:node-schedule

聽了一天的悲傷的音樂,越聽越開心。哈哈

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新巴尔虎右旗| 万载县| 斗六市| 高雄县| 江达县| 彭泽县| 社旗县| 德惠市| 新宾| 栾川县| 沈阳市| 鄱阳县| 腾冲县| 沂水县| 杂多县| 石狮市| 连州市| 迭部县| 蓝田县| 应用必备| 颍上县| 武平县| 凉城县| 无极县| 安溪县| 临潭县| 邻水| 三门峡市| 永康市| 墨竹工卡县| 临沧市| 望奎县| 宣威市| 怀仁县| 武冈市| 镇雄县| 黄石市| 康平县| 阜康市| 应城市| 桐柏县|