Maison >interface Web >js tutoriel >Lecture des problèmes d'encodage de fichiers chinois, envoi d'e-mails et exemples de tâches planifiées dans Nodejs_node.js
Il m'a fallu beaucoup de temps pour lire les fichiers chinois avec nodejs. Il y avait différentes solutions sur Internet, mais aucune n'a fonctionné pour moi. Heureusement, cela a été résolu.
Les trois points de connaissances suivants sont extraits du projet. Si vous souhaitez exécuter le script séparément, vous devez utiliser le mode global pour installer le module, comme l'installation du module de conversion chinois (vous devrez également le faire pour d'autres choses dans le futur) :
npm install -g nodemailer
npm install -g node-schedule
1. Nodejs lit le problème d'encodage des fichiers chinois
Préparez un fichier texte (bien sûr il peut aussi s'agir d'un fichier csv, etc.) test.txt et text.csv, et le fichier nodejs test.js est le suivant :
var fileStr = fs.readFileSync('D:\test.csv', {encoding:'binary'});
var buf = nouveau Buffer(fileStr, 'binary');
var str = iconv.decode(buf, 'GBK');
console.log(str);
Si vous lisez le fichier directement, il sera tronqué. Si vous n'y croyez pas, vous pouvez l'essayer. Il est nécessaire de lire d'abord uniformément en utilisant le codage binaire, puis d'utiliser GBK pour décoder. Les résultats en cours d'exécution sont les suivants :
Voir plus : iconv-lite
2. Envoyer un e-mail avec nodejs
Ne dites rien, écrivez simplement le code directement, c'est simple et facile à comprendre :
//Configurer l'e-mail
var transporteur = nodemailer.createTransport('SMTP',{
Service : '163qiye',
authentification : {
utilisateur : 'zhoujie0111@126.com',
Passe : '123456',
>
});
//Envoyer un email
var sendmail = fonction(html){
option var = {
De :"zhoujie0111@126.com",
à :"zhoujie0111@126.com,zhoujie0111@126.com",
cc:'zhoujie0111@126.com'
>
option.subject = 'Le plan quinquennal que j'ai élaboré il y a 5 ans'
option.html= html;
Transporter.sendMail(option, fonction(erreur, réponse){
si(erreur){
console.log("échec : " erreur);
}autre{
console.log("succès : " réponse.message);
>
});
>
//Appeler pour envoyer un email
sendmail("Contenu de l'e-mail :
Mon objectif pour 2015 est d'atteindre les objectifs de 2014, ce que j'aurais dû faire en 2013 car j'ai fait une promesse en 2012 et prévu en 2011!");
Voir plus : nodemailer
3. tâches planifiées nodejs
Il existe de nombreuses façons de l'utiliser. Si vous êtes familier avec la syntaxe Linux crontab, ce sera encore plus simple. Cet exemple de mon Zou est très harmonieux, haha :
/*Méthode 1 :
Spécifiez un certain temps pour exécuter la tâche
*/
var planning = require('node-schedule');
var date = nouvelle Date(2014, 12, 31, 16, 1, 0);
var j = planning.scheduleJob(date, function(){
console.log('2015 viendra bientôt.');
});
/*Méthode 2 :
Combien de minutes de chaque heure exécuter
*/
var règle = nouveau planning.RecurrenceRule();
règle.minute = 1;
var j = planning.scheduleJob(rule, function(){
console.log('Je suis très heureux maintenant !');
});
/*Méthode 3 :
Semblable à crontab
*/
var j = planning.scheduleJob('1 * * * *', function(){
console.log('C'est l'heure du thé de l'après-midi !');
});
Le résultat en course à pied est plus harmonieux, haha :
Ne vous demandez pas pourquoi la première tâche planifiée n'est pas exécutée, car c'est l'heure de Greenwich, elle doit attendre 8 heures avant de s'exécuter. Haha~~
Voir plus : node-schedule
Après avoir écouté de la musique triste pendant une journée, plus je l'écoute, plus je deviens heureux. Haha