Heim > Artikel > Web-Frontend > Lesen Sie chinesische Dateikodierungsprobleme, das Senden von E-Mails und Beispiele für geplante Aufgaben in Nodejs_node.js
Es hat viel Zeit gekostet, chinesische Dateien mit nodejs zu lesen. Es gab verschiedene Lösungen im Internet, aber zum Glück hat es nicht funktioniert.
Die folgenden drei Wissenspunkte werden aus dem Projekt extrahiert. Wenn Sie das Skript separat ausführen möchten, müssen Sie den globalen Modus verwenden, um das Modul zu installieren, z. B. die Installation des chinesischen Konvertierungsmoduls (Sie müssen dies auch tun). andere Dinge in der Zukunft):
npm install -g nodemailer
npm install -g node-schedule
1. Nodejs lesen chinesisches Dateikodierungsproblem
Bereiten Sie eine Textdatei (natürlich kann es auch eine CSV-Datei usw. sein) test.txt und text.csv vor, und die NodeJS-Datei test.js lautet wie folgt:
var fileStr = fs.readFileSync('D:\test.csv', {encoding:'binary'});
var buf = new Buffer(fileStr, 'binary');
var str = iconv.decode(buf, 'GBK');
console.log(str);
Wenn Sie die Datei direkt lesen, ist sie verstümmelt. Wenn Sie es nicht glauben, können Sie es versuchen. Es ist notwendig, zuerst einheitlich mit binärer Codierung zu lesen und dann GBK zum Decodieren zu verwenden. Die Laufergebnisse lauten wie folgt:
Weitere Informationen: iconv-lite
2. E-Mail mit nodejs senden
Sagen Sie nichts, schreiben Sie einfach den Code direkt, er ist einfach und leicht zu verstehen:
//E-Mail konfigurieren
var transporter = nodemailer.createTransport('SMTP',{
Dienst: '163qiye',
Authentifizierung: {
Benutzer: 'zhoujie0111@126.com',
Pass: '123456',
}
});
//E-Mail senden
var sendmail = function(html){
var option = {
Von: „zhoujie0111@126.com“,
an:"zhoujie0111@126.com,zhoujie0111@126.com",
cc:'zhoujie0111@126.com'
}
option.subject = 'Der Fünfjahresplan, den ich vor 5 Jahren erstellt habe'
option.html= html;
Transporter.sendMail(option, function(error, Response){
if(error){
console.log("fail: " error);
}sonst{
console.log("success: " Response.message);
}
});
}
//Anrufen, um E-Mail zu senden
sendmail("E-Mail-Inhalt:
Mein Ziel für 2015 ist es, die Ziele von 2014 zu erreichen, was ich 2013 hätte erreichen sollen, weil ich 2012 ein Versprechen gegeben und 2011 geplant habe!");
Weitere Informationen: Nodemailer
3. Nodejs geplante Aufgaben
Es gibt viele Möglichkeiten, dies zu verwenden. Wenn Sie mit der Linux-Crontab-Syntax vertraut sind, ist dies noch einfacher. Dieses Beispiel meines Zou ist sehr harmonisch, haha:
/*Methode 1:
Geben Sie eine bestimmte Zeit für die Ausführung der Aufgabe an
*/
var Schedule = require('node-schedule');
var date = neues Datum(2014, 12, 31, 16, 1, 0);
var j = Schedule.scheduleJob(date, function(){
console.log('2015 kommt bald.');
});
/*Methode 2:
Wie viele Minuten jeder Stunde ausgeführt werden sollen
*/
var Rule = neuer Zeitplan.RecurrenceRule();
Rule.minute = 1;
var j = Schedule.scheduleJob(rule, function(){
console.log('Ich bin jetzt sehr glücklich!');
});
/*Methode 3:
Ähnlich wie crontab
*/
var j = Schedule.scheduleJob('1 * * * *', function(){
console.log('Es ist Zeit für den Nachmittagstee!');
});
Das Laufergebnis ist harmonischer, haha:
Wundern Sie sich nicht, warum die erste geplante Aufgabe nicht ausgeführt wird, da dies die Greenwich Mean Time ist und die Ausführung 8 Stunden dauern muss. Haha~~
Weitere Informationen: Node-Schedule
Nachdem ich einen Tag lang traurige Musik gehört habe, werde ich umso glücklicher, je mehr ich sie höre. Haha