在我的前端HTML中,我想要一个带有'/ uploads / profilePicture'来源的img
标签。在node / express中处理请求时,我想对用户进行身份验证,从文件系统加载用户的个人资料图片并使用图像数据进行响应。我的代码基本归结为:
app.get('*', function(req, res, next) {
/* Some code leading to the function getProfilePicture */
});
function getProfilePicture(req, res, next) {
loadFile('uploads/' + req.user.local.picture, function(image) {
res.writeHead(200, { 'Content-Type': 'image/jpeg' });
res.end(image);
});
};
当代码运行时,前端显示图像损坏,但控制台中没有打印错误。
有趣的是,这对我有用。不久之前,我的路由代码不太通用,因为它在我的网站上为每个页面使用了app.get()
。所以我使用app.get('/uploads/profilePicture')
代替app.get('*')
。这可能是问题吗?
修改
我正在使用Node v0.10.35并表达3.0.6。
编辑2:
使用Express 3.19.1测试,仍然无效。
答案 0 :(得分:0)
事实证明,使用res.sendfile可以解决问题。
void push(proxy value)
{
if (top == 49) puts("'a' stack overflow"), exit(1);
else a[++top] = value;
}
proxy pop()
{
if (top == -1) return (proxy){-234};
else return a[top--];
}
任何解释为什么sendfile工作但不是setHeaders + end将不胜感激!