快速访问父文件夹
Express parent folder access
嗨,伙计们,我正在研究这个快速应用程序。在我的快速文件的顶部,我写了这一行,因为我所有的静态文件都位于我的工作目录中:
app.use(express.static(__dirname));
现在我想发送一个存在于当前文件夹的父文件夹中的文件:
app.get('/test', function(req, res) {
res.sendFile("../../test.html");
});
它对我不起作用,通常因为所有静态文件都必须存在于上面的目录中 defind,我可以例外并使我的代码正常工作吗?
express.static
和res.sendFile
彼此一无所知。它们碰巧共享许多相同的内部结构,但实际上并不相关。
您可以将test.html
放在任何您想要的位置,然后使用 Node 的内置path
模块引用它。例如,如果您的文件结构如下所示:
test.html
real-app/
├── app.js
├── node_modules/
└── package.json
然后你可以像这样发送test.html
:
var path = require('path');
// ...
app.get('/test', function(req, res) {
var testHtmlPath = path.resolve(__dirname, '..', '..', 'test.html');
res.sendFile(testHtmlPath);
});
PS:我不建议您发送静态文件的方式。提供与应用代码位于同一目录中的文件(这就是__dirname
的意思)可能会导致代码泄露,黑客可以利用这些泄露来利用代码中的问题。例如,如果黑客访问了此 URL:
http://yourapp.com/app.js
他们将能够看到app.js
,其中包含应用程序的所有代码。你不想向黑客透露这一点!他们还可以导航到/secret-passwords.json
或其他类似文件等路由。
静态文件被放置在一个特殊的目录中,通常称为 static
或 public
。您可以像这样提供此目录中的文件:
var path = require('path');
// ...
var staticFilesPath = path.resolve(__dirname, 'public');
app.use(express.static(staticFilesPath));
通常,在发送位于应用代码之外的文件时,应非常小心。
希望这有帮助!
相关文章:
- 限制对HTML/CSS/IMG或根索引文件夹的访问
- 通过javascript跨浏览器访问outlook联系人文件夹
- 如何在PHP中使用url保护我的图像和文件夹免受直接访问
- 当通过Node.js服务器访问时,Javascript文件在Chrome上工作,但从文件夹打开时不工作
- 通过驱动器API访问文件夹中的文件
- 如何防止子文件夹通过匿名 http-url-path 访问,尽管父文件夹上有受密码保护的 aspx.default 文件
- S3 循环访问存储桶/文件夹/文件
- 如何使用它的相对路径访问tomcat服务器中的文件夹
- 从外部根文件夹访问 JS
- 火狐附加组件如何访问用户的书签文件夹
- 快速访问父文件夹
- 无需验证即可访问共享Google Drive文件夹中的文件,JavaScript
- 进程无法访问该文件,因为另一个进程正在使用该文件(删除文件夹)
- 阻止用户访问资源文件夹中的文件.托管在Apache Tomcat上
- 从html文件夹中的HTML5桌面应用程序访问本地文件
- 访问特定Dropbox用户's文件夹中使用API
- 我的node.js简单web服务器没有'无法访问父文件夹
- 从子文件夹访问CSS图像时不显示
- Ajax不能从应用程序的根文件夹访问UP目录下的文件
- PhoneGap Windows Phone 8-从www/文件夹访问资源