【问题标题】:Create a file in public folder of an Express.js App在 Express.js 应用程序的公共文件夹中创建文件
【发布时间】:2013-12-01 07:43:22
【问题描述】:

我一直在尝试在我的 Express.js 应用程序的公用文件夹中创建一个简单的 html 文件,但找不到正确的路径。谁能帮帮我?

这是我在 app.js 中配置静态文件夹的部分:

app.use(express.static(path.join(__dirname, 'public')));

这是我用来尝试在公共文件夹中创建 index.html 文件的代码:

exports.index = function(req, res){
    var fs = require('fs');
    fs.openSync(__dirname + "/public/static_html/index.html", 'w')
};

但是,node.js 抛出错误:

500 错误:ENOENT,没有这样的文件或目录 'C:\nodejs\node_modules.bin\myapp\routes\public\static_html\index.html'

为什么它指向 "routes" 内的公用文件夹?

我希望路径是:

'C:\nodejs\node_modules.bin\myapp\public\static_html\index.html'

有人可以帮忙吗?

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    我的猜测是您的目录结构如下所示:

    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')
    

    【讨论】:

    • 很好的解释,很好的答案。
    猜你喜欢
    • 2023-04-04
    • 2018-12-18
    • 2016-02-20
    • 1970-01-01
    • 2020-02-09
    • 2021-12-28
    • 2021-05-20
    • 2014-08-14
    相关资源
    最近更新 更多