ホームページ >ウェブフロントエンド >jsチュートリアル >中国語ファイルのエンコーディングの問題の読み取り、電子メールの送信、および Nodejs_node.js でのスケジュールされたタスクの例

中国語ファイルのエンコーディングの問題の読み取り、電子メールの送信、および Nodejs_node.js でのスケジュールされたタスクの例

WBOY
WBOYオリジナル
2016-05-16 16:22:411469ブラウズ

nodejs で中国語のファイルを読み取るには時間がかかりました。インターネット上にはさまざまな解決策がありましたが、幸いなことにどれも解決できませんでした。

次の 3 つのナレッジ ポイントがプロジェクトから抽出されます。スクリプトを個別に実行する場合は、中国語変換モジュールのインストールなど、グローバル モードを使用してモジュールをインストールする必要があります (これは、中国語変換モジュールのインストールにも必要です)。将来的には他のことも):

コードをコピーします コードは次のとおりです:

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 を使用してデコードする必要があります。実行結果は次のとおりです:

もっと見る:

iconv-lite

2.nodejs でメールを送信します

何も言わずに、コードを直接記述するだけです。シンプルで理解しやすいです:

コードをコピーします コードは次のとおりです:
var nodemailer = require('nodemailer');
//メールを設定します

var Transporter = nodemailer.createTransport('SMTP',{
サービス: '163qiye'、
認証: {
ユーザー: 'zhoujie0111@126.com',
パス: '123456'、
}
});

//メールを送信

var sendmail = function(html){
var オプション = {
from: "zhoujie0111@126.com"、
宛先:「zhoujie0111@126.com,zhoujie0111@126.com」、
cc:'zhoujie0111@126.com'
}
option.subject = '5年前に立てた5か年計画'
option.html= html;
Transporter.sendMail(オプション, 関数(エラー, 応答){
if(エラー){
console.log("fail: " エラー);
}その他{
console.log("成功: " 応答.メッセージ);
}
});
}

//電話してメールを送信します

sendmail("メールの内容:
2015 年の目標は、2012 年に約束し、2011 年に計画したので、2013 年に達成すべきだった 2014 年の目標を達成することです!");

もっと見る:

nodemailer

3.nodejs のスケジュールされたタスク

これを使用する方法はたくさんあります。Linux の crontab 構文に慣れている場合は、さらに簡単になります。私の Zou の例はとても調和的です (笑):


コードをコピー コードは次のとおりです:

var スケジュール = require('node-schedule');

/*方法 1:
タスクを実行する特定の時間を指定します
*/
var スケジュール = require('node-schedule');
var date = new Date(2014, 12, 31, 16, 1, 0);

var j =Schedule.scheduleJob(date, function(){
console.log('2015 年がもうすぐ始まります。');
});

/*方法 2:
毎時何分に実行するか
*/
var ルール = 新しいスケジュール.RecurrenceRule();
ルール.分 = 1;
var j = スケジュール.scheduleJob(ルール, 関数(){
console.log('今はとても幸せです!');
});

/*方法 3:
crontab
に似ている */
var j =schedule.scheduleJob('1 * * * *', function(){
console.log('アフタヌーンティーの時間です!');
});

実行結果はより調和のとれたものになりました (笑):

最初にスケジュールされたタスクがなぜ実行されないのか不思議ではありません。これはグリニッジ標準時なので、実行するまでに 8 時間待つ必要があります。はぁ~~

詳細: ノードスケジュール

悲しい音楽を一日聞いた後、聞けば聞くほど幸せになります。はは

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。