Saya mengambil banyak masa untuk membaca fail Cina dengan nodej Terdapat pelbagai penyelesaian di Internet, tetapi tiada satu pun daripada mereka yang berkesan untuk saya.
Tiga mata pengetahuan berikut diekstrak daripada projek Jika anda ingin menjalankan skrip secara berasingan, anda perlu menggunakan mod global untuk memasang modul, seperti memasang modul penukaran bahasa Cina (anda juga perlu melakukan ini. untuk perkara lain pada masa hadapan):
npm pasang -g nodemailer
npm install -g nod-schedule
1. Masalah pengekodan fail Cina Nodejs
Sediakan fail teks (sudah tentu ia juga boleh menjadi fail csv, dsb.) test.txt dan text.csv, dan fail nodejs test.js adalah seperti berikut:
var fileStr = fs.readFileSync('D:\test.csv', {encoding:'binary'});
var buf = Penampan baharu(fileStr, 'binary');
var str = iconv.decode(buf, 'GBK');
console.log(str);
Jika anda membaca fail secara terus, ia akan menjadi kacau jika anda tidak percaya, anda boleh mencubanya. Ia perlu membaca secara seragam menggunakan pengekodan binari terlebih dahulu, dan kemudian gunakan GBK untuk menyahkod. Keputusan larian adalah seperti berikut:
Lihat lagi: iconv-lite
2. Hantar e-mel dengan nodej
Jangan cakap apa-apa, tulis kod terus, ia mudah dan mudah difahami:
//Konfigurasikan e-mel
var transporter = nodemailer.createTransport('SMTP',{
Perkhidmatan: '163qiye',
pengesahan: {
pengguna: 'zhoujie0111@126.com',
Lulus: '123456',
}
});
//Hantar e-mel
var sendmail = function(html){
pilihan var = {
Daripada:"zhoujie0111@126.com",
kepada:"zhoujie0111@126.com,zhoujie0111@126.com",
cc:'zhoujie0111@126.com'
}
option.subject = 'Rancangan lima tahun yang saya buat 5 tahun lalu'
option.html= html;
Transporter.sendMail(pilihan, fungsi(ralat, respons){
jika (ralat){
console.log("gagal: " ralat);
}lain{
console.log("success: " response.message);
}
});
}
//Panggil untuk menghantar e-mel
sendmail("Kandungan e-mel:
Matlamat saya untuk tahun 2015 adalah untuk mencapai matlamat tahun 2014 yang sepatutnya saya lakukan pada tahun 2013 kerana saya telah membuat janji pada tahun 2012 & merancang pada tahun 2011!");
Lihat lagi: nodemailer
3. tugasan berjadual nodej
Terdapat banyak cara untuk menggunakan ini Jika anda biasa dengan sintaks crontab Linux, ini akan menjadi lebih mudah. Contoh Zou saya ini sangat harmoni, haha:
/*Kaedah 1:
Tentukan masa tertentu untuk melaksanakan tugas
*/
var schedule = require('node-schedule');
tarikh var = Tarikh baharu(2014, 12, 31, 16, 1, 0);
var j = schedule.scheduleJob(tarikh, fungsi(){
console.log('2015 akan datang tidak lama lagi.');
});
/*Kaedah 2:
Berapa minit setiap jam untuk melaksanakan
*/
var rule = jadual baharu.RecurrenceRule();
peraturan.minit = 1;
var j = schedule.scheduleJob(peraturan, fungsi(){
console.log('Saya sangat gembira sekarang!');
});
/*Kaedah 3:
Serupa dengan crontab
*/
var j = schedule.scheduleJob('1 * * * *', function(){
console.log('Sudah tiba masanya untuk minum petang!');
});
Hasil larian lebih harmoni, haha:
Jangan tertanya-tanya mengapa tugasan berjadual pertama tidak dilaksanakan, kerana ini ialah Masa Min Greenwich, ia perlu menunggu 8 jam sebelum melaksanakan. Haha~~
Lihat lagi: jadual nod
Selepas mendengar muzik sedih selama sehari, semakin saya mendengarnya, semakin saya gembira. Haha