Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以在express中编写app.get以动态获取吗?_Javascript_Node.js_Express - Fatal编程技术网

Javascript 我可以在express中编写app.get以动态获取吗?

Javascript 我可以在express中编写app.get以动态获取吗?,javascript,node.js,express,Javascript,Node.js,Express,与其为我想提供的每一个文件都写一个,我可以写一些类似于 app.get('/' + x, function(req, res) { res.sendfile(x + '.html'); }); 如果是这样的话,我会怎么做呢?在执行app.get或其他操作之前,我可以从req解析x吗 谢谢 将所有要公开的HTML文件放入文件夹名public 然后添加到中间件列表中 app.use(express.static(_dirname+'/../public') 您的配置。现在这些文件将静态路由

与其为我想提供的每一个文件都写一个,我可以写一些类似于

app.get('/' + x, function(req, res) {
    res.sendfile(x + '.html');
});
如果是这样的话,我会怎么做呢?在执行app.get或其他操作之前,我可以从req解析x吗


谢谢

将所有要公开的HTML文件放入文件夹名
public

然后添加到中间件列表中

app.use(express.static(_dirname+'/../public')


您的配置。现在这些文件将静态路由。因此,如果您在位置
/public/foo/bar.html
处有一个文件,则
/foo/bar.html
将加载并返回该文件。

将您希望公开的所有html文件放在文件夹名
public

然后添加到中间件列表中

app.use(express.static(_dirname+'/../public')


您的配置。现在这些文件将静态路由。因此,如果您在
/public/foo/bar.html
位置有一个文件,那么
/foo/bar.html
将加载并返回该文件。

如果您使用的是静态文件,一定要使用静态文件夹。如果需要使用sendfile,请尝试以下操作:

app.get('/:pagename'  , function(req, res) {
  res.sendfile(req.params.pagename + '.html');
});

如果你使用的是静态文件,一定要使用静态文件夹。如果需要使用sendfile,请尝试以下操作:

app.get('/:pagename'  , function(req, res) {
  res.sendfile(req.params.pagename + '.html');
});

如果我想做一些像<代码>res.sendfile('layout.html')
但是
doSomething(x)
之后呢?另外,在html示例中,我希望
/foo/bar
获取bar.html,而不是
/foo/bar.html
Express使用connect的staticProvider来实现此功能。您可以在express的node_modules/connect/lib/connect/middleware/staticProvider.js中找到staticProvider的源代码。如果您需要与它提供的完全不同的东西,源代码是一个很好的起点。@想象一下,然后使用视图和中间件。如果我想做像<代码>res.sendfile('layout.html')
但是
doSomething(x)
之后呢?另外,在html示例中,我希望
/foo/bar
获取bar.html,而不是
/foo/bar.html
Express使用connect的staticProvider来实现此功能。如果您需要与staticProvider.js完全不同的内容,可以在express的node_modules/connect/lib/connect/middleware/staticProvider.js中找到staticProvider的源代码,源代码是一个很好的起点。@很好,然后使用视图和中间件这正是我一直在寻找的功能,即使我没有给出最好的示例,谢谢!这正是我一直在寻找的功能,即使我没有给出最好的例子,谢谢!