我一直在尝试在我的 Express.js 应用程序的公共(public)文件夹中创建一个简单的 html 文件,但无法获得正确的路径。谁能帮帮我?
这是我配置静态文件夹的 app.js 部分:
app.use(express.static(path.join(__dirname, 'public')));
这是我用来尝试在公共(public)文件夹中创建 index.html 文件的代码:
exports.index = function(req, res){
var fs = require('fs');
fs.openSync(__dirname + "/public/static_html/index.html", 'w')
};
但是,node.js 抛出一个错误:
500 Error: ENOENT, no such file or directory 'C:\nodejs\node_modules.bin\myapp\routes\public\static_html\index.html'
为什么它指向“routes”中的公用文件夹?
我希望路径是:
'C:\nodejs\node_modules.bin\myapp\public\static_html\index.html'
有人可以帮忙吗?
最佳答案
我的猜测是您的目录结构如下所示:
app.js
public/
static_html/
routes/
index.js
并且您的 exports.index
存在于 routes/index.js
中(也许它的名称不同,但我只是在这里猜测)。
由于 __dirname
是相对于模块的,因此在该文件中它将是 ./routes
。所以你需要返回一级才能访问public/
:
fs.openSync(__dirname + "/../public/static_html/index.html", 'w')
关于javascript - 在 Express.js 应用程序的公共(public)文件夹中创建一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20309904/