gpt4 book ai didi

node.js - 为什么使用 path.join() 而不是 static ('public' )

转载 作者:搜寻专家 更新时间:2023-10-31 22:37:17 24 4
gpt4 key购买 nike

在我读过的所有 node express 教程中,以下语法用于创建公共(public)目录:

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

但是下面的工作正常:

app.use(express.static('public'))

那么为什么我要改用路径模块呢?

最佳答案

最后一个示例使用相对路径,如果您从以 public 为子目录的目录启动您的应用程序,该路径将起作用。

但是,如果您从另一个目录启动您的应用程序,它将中断。假设您的应用程序位于 /path/to/app/directory 但您启动脚本时 /tmp 是当前(工作)目录:

/tmp$ node /path/to/app/directory/app.js

在那种情况下,Express 会尝试使用 /tmp/public 作为静态文件的位置,这是不正确的。

使用 path.join(__dirname, 'public') 将创建一个绝对路径,使用 app.js 所在的目录作为基础。在上面的示例中,它将解析为 /path/to/app/directory/public,如果您从另一个工作目录启动脚本,这也将有效。

关于node.js - 为什么使用 path.join() 而不是 static ('public' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32226839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com