两者的区别是什么
express.static(__dirname + '/static')和
express.static(path.join(__dirname, '/static'))以及我应该使用哪一个来提供静态文件
发布于 2020-07-20 16:06:12
__dirname是Node.js中的全局变量,它是:
当前模块的目录名称。more read
i.e
console.log(__dirname);
// Prints: /Users/mjr你可以从应用程序的任何地方访问它。
path.join()是节点Path module的函数,它:
使用特定于平台的分隔符将所有给定的路径段连接在一起,然后规范化得到的路径。
i.e
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// Returns: '/foo/bar/baz/asdf'您的两个示例都会生成相同的字符串(在本例中!)。,但使用Path.join的将帮助您从不同的资源或其他情况构建路径,消除不必要的分隔符。
i.e
// 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'))
另一个例子:
express.static(`${__dirname}/${static_path}`)如果您不确定提供static_path的资源,这可能会产生问题,这可能会导致无效的路径字符串。
https://stackoverflow.com/questions/62990697
复制相似问题