【问题标题】:Node + Express use NodeMailer appwideNode + Express 在应用范围内使用 NodeMailer
【发布时间】:2017-12-04 14:44:38
【问题描述】:

我正在尝试在我现有的应用程序上设置 NodeMailer。我正在尝试在我的主要app.ts 上设置 NodeMailer 配置,然后在应用程序范围内使用它在任何需要的地方发送邮件。这就是我的app.ts

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 等其他地方使用该对象?

【问题讨论】:

  • 从 app.ts 导出并导入到你的控制器中。
  • @vibhor1997a 是的,我不知道该怎么做。你能解释一下吗?
  • 我不太确定导入导出语法,因为我使用的是旧的 require 和 module.exports

标签: node.js express nodemailer


【解决方案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 或任何其他你想使用 nodemailer 的模块

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

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

【讨论】:

    猜你喜欢
    • 2020-04-10
    • 2015-08-26
    • 2017-02-07
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    相关资源
    最近更新 更多