【发布时间】: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