2017-12-04 7 views
0

NodeMailerを既存のアプリケーションにセットアップしようとしています。私はメインのapp.tsにNodeMailer設定を設定しようとしています。そして、必要に応じてどこにでもメールを送信するために、それを幅広く使ってください。これは私が私のapp.tsに持っているものです。Node + Expressは、NodeMailerを使用しています。

import * as mailer from 'nodemailer'; 

const app = express(); 
dotenv.load({ path: '.env' }); 
app.set('port', (process.env.PORT || 3000));  
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 

let mongodbURI = process.env.MONGODB_URI;  
mongoose.Promise = global.Promise; 
const mongodb = mongoose.connect(mongodbURI, { useMongoClient: true }); 

var mailConfig = { 
    host: process.env.MAIL_HOST, 
    port: process.env.MAIL_PORT, 
    auth: { 
    user: process.env.MAIL_USERNAME, 
    pass: process.env.MAIL_PASSWORD 
    } 
}; 
let transporter = mailer.createTransport(mailConfig); 

mongodb 
    .then((db) => { 
    console.log('Connected to MongoDB on', db.host + ':' + db.port);  
    setRoutes(app);  
    if (!module.parent) { 
     app.listen(app.get('port'),() => { 
     console.log('API listening on port ' + app.get('port')); 
     }); 
    }  
    }) 
    .catch((err) => { 
    console.error(err); 
    }); 

export { app }; 

私はapp.use(transporter)app.set('transporter',transporter)のようなものを試してみました。しかし、それをする方法はあまりないようです。それをアプリ全体に宣言し、controller/user.tsのような他の場所でオブジェクトを使用するにはどうすればよいですか?

+0

輸出nodemailer使用して、コントローラでそれをインポートしたい他のモジュール。 – vibhor1997a

+0

@ vibhor1997aはい私はそれを行う方法がわかりません。説明していただけますか? – JackSlayer94

+0

私は古いrequireとmodule.exportsを使用するので、import exportの構文についてはあまりよく分かりません – vibhor1997a

答えて

1

トランスポート用に別のjsファイルを作成し、それが必要なモジュールの中にインポートします。

transport.js

var mailer = require('nodemailer'); 
var mailConfig = { 
    host: process.env.MAIL_HOST, 
    port: process.env.MAIL_PORT, 
    auth: { 
    user: process.env.MAIL_USERNAME, 
    pass: process.env.MAIL_PASSWORD 
    } 
}; 

var transporter = mailer.createTransport(mailConfig); 

module.exports = transporter; 

app.jsまたはあなたはそれがapp.tsから

var transporter = require('./transport'); 

transporter.sendMail(mailOptions, function(error, info) { 
    if (error) { 
     //Error 
    } else { 
     //Success 
    } 
});