【问题标题】:Node.js Express app.get: Browser want to open the linkNode.js Express app.get:浏览器想要打开的链接
【发布时间】:2013-09-29 12:37:01
【问题描述】:

我有以下问题。 在我的 node.js 应用程序中,用户单击通过 get 发送到我的 app.js 的链接。链接是一个文件名。在我的 app.js 中,我可以读取参数,但浏览器仍会尝试在浏览器中打开文件

app.get('/files/:file', function(req, res) {
    console.log('Would handle ' + req.params.file);
});

那么我必须做些什么来阻止浏览器打开链接?

【问题讨论】:

  • 可能您的浏览器默认会尝试下载该文件。您是否尝试在回复中添加内容类型? res.setHeader('Content-Type', 'text/plain'); res.send();
  • 是的,然后我得到空白页,但我不会停留在当前页面上。
  • 啊,已经,现在我明白了。只需根据您下载的文件设置内容类型即可!
  • 对不起,我想你误解了我想要的。 :) 我不想下载我点击的文件,我只想将它发送到我的 app.js。在网站上应该什么都不会发生。
  • 什么意思?如果您向服务器发送请求,服务器必须做出响应。

标签: javascript jquery node.js express pug


【解决方案1】:

如上面评论中所述。您可以使用:

app.get('/files/:file', function(req, res) {
    console.log('Would handle ' + req.params.file);
    res.redirect('back');
});

您可以在Express - api reference 页面上阅读更多信息。 res.redirect('back') 将重定向到引用页面;如果没有引用页面,它将默认为“/”。希望这些信息对您有所帮助。

【讨论】:

    猜你喜欢
    • 2011-06-14
    • 2012-02-21
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多