Node / Express - 有没有办法从控制器方法访问静态文件?

时间:2016-05-14 00:41:38

标签: node.js express mailgun

在控制器方法内部,有没有办法访问静态文件?我使用mailgun发送电子邮件,需要在我的请求中发送一个html文件,该文件位于/ public。

app.post('/', function(req, res) {
    var html = getHtml(); // Need to get the html here to pass to mailgun
}

2 个答案:

答案 0 :(得分:2)

有没有办法使用Express提供的一些方便的设备访问静态文件目录?不,不是我知道的。

有没有办法获得你想要做的事情?当然。使用path模块阅读它。我也喜欢使用const path = require("path"); const fs = require("fs"); // Do however you like to build paths. // I like to use resolve so I always get an absolute path. const publicPath = path.resolve(__dirname, "public"); const htmlPath = path.join(publicPath, "thefile.html"); app.post('/', function (req, res, next) { fs.readFile(htmlPath, "utf8", onFile); function onFile (err, html) { if (err) return next(err); // assuming you're using an error handler, like you probably should be mailgunThatStuff(html, mgDone); } function mgDone (err) { if (err) return next(err); res.end("OK mailgun'd that thing"); } } 模块来生成我的文件路径。

p

这可能有点罗嗦。有意义吗?

答案 1 :(得分:0)

你可以试试这个

(app.js)你刚刚提到app.js中的静态文件夹

contentOffset
在./public/pages /

中的本地花卉中的

index.html页面

var express = require('express');
var app = express();
app.use(express.static('public'));

试试这个工作正常