[英]can't load static files on amazon ec2 with nginx and nodejs express
[英]Can't load email template nodejs nginx
我在Nginx ubuntu服务器上运行一个小节点应用程序。 我设法通过提供所有静态文件来使网站正常运行。 (花了我一段时间才弄清楚那个)。
但是现在我想执行一项cron作业来发送电子邮件。 在这封电子邮件中,我使用“ fs”加载了一个简单的html模板。 当我运行cron作业时,它给了我错误:
错误:ENOENT:没有此类文件或目录,请打开“ email.html”
我认为还是由于找不到静态文件而又不知道如何解决它。 因为我不使用express运行此脚本。 我的script.js看起来像这样:
'use strict';
const nodemailer = require('nodemailer');
var ejs = require("ejs");
var fs = require("fs");
var Handlebars = require('handlebars');
var source = fs.readFileSync('email.html','utf8');
var template = Handlebars.compile(source);
var result = template(user);
var mailOptions = {
from: '"Me, <me@gmail.com>', // sender address
to: "user@user.com", // list of receivers
subject: 'subject', // Subject line
html: result
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message sent: %s', info.messageId);
console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
process.exit()
});
script.js和email.html在同一根文件夹中
我的nginx文件如下所示:
server {
listen 80;
listen [::]:80;
server_name roostr.online www.roostr.online;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:5000/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
}
location ~ ^/(images/|img/|javascript/|html/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) {
root /var/www/roostr.online/html/public;
access_log off;
expires max;
}
}
var html = fs.readFileSync('./path/email.html', 'utf8');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.