javascript - 在 Express.js 应用程序的公共(public)文件夹中创建一个文件

标签 javascript node.js express

我一直在尝试在我的 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/

相关文章:

javascript - 英特尔 xdk 守护进程与英特尔伽利略 gen2

javascript - 环回给出超出最大调用堆栈大小的错误

javascript - 多文档事务不使用 MongoDB Atlas

node.js - 使用远程服务器的 TLS 身份验证

javascript - 从 javascript 强制服务器 TextChanged 事件

javascript - 如何与使用 ajax 插入的对象进行交互?

node.js - Twilio statusCallback 实现遇到麻烦

node.js - 在 Ruby 中从 aws-kms 解密 key

node.js - Sequelize 对象不是一个函数

node.js - 如何结束 express.js/node POST 响应?