2017-12-04 31 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 사용하고 컨트롤러를 가져올

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 또는 기타 모듈. – vibhor1997a

+0

@ vibhor1997a 예 어떻게해야할지 모르겠습니다. 설명해 주시겠습니까? – JackSlayer94

+0

이전 require 및 module.exports를 사용하므로 가져 오기 내보내기 구문이 확실하지 않습니다. – vibhor1997a

답변

1

전송 용으로 별도의 js 파일을 작성하고 필요한 모듈에 해당 파일을 가져 오십시오. 당신이 app.ts에서

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

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