JavaScriptの例外処理を上手に書く

Errorを継承したCustomErrorクラスを使ったらきれいに書けた。

custom_error.js

class CustomError extends Error {
  constructor ( message = 'エラーが発生しました') {
    super();
    this.name = 'CustomError';
    this.message = message;
  }
}
module.exports = CustomError;

未成年がアクセスしてはいけない機能を実装する場合は下のような感じになります。


const CustomError = require('./custom_error.js');

const validateAge = (age) => {
    if (age < 20) {
         new CustomError('未成年はアクセスしてはいけません');
    }
}


try {
    validateAge(age)
    ...任意の処理...
} catch (err) {
    if (err.name === 'CustomError'){
        alert(err.message);
    }else{
        alert('予期しないエラーが発生しました');
    }
}


サーバー側でもクライアント側でも使えて便利。

lolipopを使ってnode.jsでメール送信を行う

lolipopでメール送信を行うメモ。

'use strict';

let nodemailer = require('nodemailer');
let smtpTransport = require('nodemailer-smtp-transport');


let params = {
    from: 'hogehoge@mail.com',
    to: 'foobar@gmail.com',
    subject: 'title',
    text: 'text'
};

let transporter = nodemailer.createTransport(smtpTransport({
     host: 'smtp.lolipop.jp',
     port: 587,
     auth: {
         user: 'hogehoge@mail.com',
         pass: 'xxx',
         auth:'crammd5',
     }
}));

transporter.sendMail(params
  , (err, res)  => {
     if (err) {
          console.log(err);
     } else {
          console.log('メールを送信しました');
     }
});