微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

html – 使用查询字符串表达res.sendFile()

我已经使用res.sendFile()成功实现了服务静态文件,但是如果我添加一些查询字符串它就不起作用.

例如.以下代码绝对正常.

res.sendFile(path.join(__dirname,'../public','/index.html'));

但如果我这样做,那就失败了

res.sendFile(path.join(__dirname,'/index.html?id=' + req.params.id));

res.sendFile(path.join(__dirname,'/index.html?id=123'));

然后我得到以下错误

ENOENT,stat '/Users/krishnandu/Documents/Project/public/index.html?id=123'

404

Error: ENOENT,stat '/Users/krishnandu/Documents/Project/public/index.html?id=123'
    at Error (native)

解决方法

您不能使用res.sendFile()传递查询字符串参数.您必须将文件路径指定为res.sendFile()中的第一个参数

语法是:

res.sendFile(path [,options] [,fn])

所以你能做的是,

>将查询字符串与路由一起使用,比如route1(参见下面的代码)
>在route1的GET方法中,使用res.sendFile()

app.get('/route1',function(req,res){
  res.sendFile(path.join(__dirname,'/index.html'));
});

res.redirect('/route1?id=123');

另见Express API documentation和0700和res.redirect.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐