我如何在nodeJS或Express中创建一次性下载链接?
我正在努力找到实现这一目标的最简单方法.我到目前为止的想法是:
使用fs流读取然后删除文件或以某种方式生成一个单击下载按钮后删除的链接/路由
这些实现是否可行?有更简单的方法吗?
任何帮助或示例代码将不胜感激!
-谢谢
基于这个问题的答案我的功能,我写了这个函数来删除实时站点上的路由(使用Express和Node).
function deleteRoute(url) {
for (var i = app.routes.get.length - 1; i >= 0; i--) {
if (app.routes.get[i].path === "/" + url) {
console.log(app.routes.get[i]);
delete app.routes.get[i];
console.log(app.routes.get)
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,它似乎也删除了所有静态页面的路由,这些页面在启动时声明如下:
app.use(express.static(__dirname + '/components'));
Run Code Online (Sandbox Code Playgroud)
我已经冥想了一段时间,似乎无法控制它.任何人都可以帮忙吗?每当我在之前和之后记录app.routes.get时,看起来操作都是正确完成的.
具体来说,这是在删除路由后重新加载任何静态页面时出现的错误:
TypeError: Cannot call method 'match' of undefined
Run Code Online (Sandbox Code Playgroud)
这是删除前的app.routes:
{ get:
[ { path: '/',
method: 'get',
callbacks: [Object],
keys: [],
regexp: /^\/\/?$/i,
params: [] },
{ path: '/index.html',
method: 'get',
callbacks: [Object],
keys: [],
regexp: /^\/index\.html\/?$/i,
params: [] },
{ path: …Run Code Online (Sandbox Code Playgroud)