Express:为app.use()分配参数的不同方法

时间:2018-04-04 14:35:21

标签: javascript node.js express

有什么区别:

app.use('my-directory', express.static(join(__dirname, 'my-directory');

app.use(express.static(join(__dirname, 'other-directory'));

如果我没有错,两者似乎也一样。

在第一种情况下,我指定了文件路径,第二种情况是目录名称成为文件路径。

两种变体之间有什么区别?

2 个答案:

答案 0 :(得分:1)

app.use的第一个可选参数指定将应用中间件的基本路径。请参阅此处的文档; app.use

当您不指定此第一个参数时,中间件将应用于所有请求,无论其路径如何。

他们似乎在你的情况下做同样的事情,但事实上,如果你的路径不是以express.static开头,那么在你的第一种情况下my-directory永远不会被调用。

答案 1 :(得分:1)

app.use('my-directory', express.static(join(__dirname, 'my-directory');

是一个与安装它的路径一起使用的中间件

没有安装路径
app.use(express.static(join(__dirname, 'other-directory')); 

这意味着express.static中间件会在每次请求时执行。

假设foo.htmlmy-directory中都有other-directory个文件。

在第一种情况下,您会在路径/my-directory/foo.html找到该文件,在第二种情况下,您会在路径/foo.html找到该文件。