首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >express.static(path.join(__dirname,'/static'))和express.static(__dirname + '/static')的区别

express.static(path.join(__dirname,'/static'))和express.static(__dirname + '/static')的区别
EN

Stack Overflow用户
提问于 2020-07-20 15:39:30
回答 1查看 492关注 0票数 0

两者的区别是什么

代码语言:javascript
复制
express.static(__dirname + '/static')

代码语言:javascript
复制
express.static(path.join(__dirname, '/static'))

以及我应该使用哪一个来提供静态文件

EN

回答 1

Stack Overflow用户

发布于 2020-07-20 16:06:12

__dirname是Node.js中的全局变量,它是:

当前模块的目录名称。more read

i.e

代码语言:javascript
复制
console.log(__dirname);
// Prints: /Users/mjr

你可以从应用程序的任何地方访问它。

path.join()是节点Path module的函数,它:

使用特定于平台的分隔符将所有给定的路径段连接在一起,然后规范化得到的路径。

i.e

代码语言:javascript
复制
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// Returns: '/foo/bar/baz/asdf'

您的两个示例都会生成相同的字符串(在本例中!)。,但使用Path.join将帮助您从不同的资源或其他情况构建路径,消除不必要的分隔符。

i.e

代码语言:javascript
复制
// with Path.join() => say if your platform specific separator is "/"
path.join('/a','b'); // will produce '/a/b'
path.join('\a','/b'); // will produce '/a/b'
path.join('a','\b'); // will produce 'a/b'

这也表明express.static(path.join(__dirname, '/static'))

也可以写成这样:

express.static(path.join(__dirname, 'static'))

另一个例子:

代码语言:javascript
复制
express.static(`${__dirname}/${static_path}`)

如果您不确定提供static_path的资源,这可能会产生问题,这可能会导致无效的路径字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62990697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档