Node JS在rest api响应中返回图像

时间:2015-02-04 23:03:41

标签: node.js rest express postman

在获取用户信息的其余api调用中,我想返回用户信息和图像。任何人都可以告诉如何返回图像以及节点js中的信息。另外我如何看到像邮递员这样在Web客户端中返回的信息。

1 个答案:

答案 0 :(得分:10)

如果要将图像作为二进制数据发送,可以使用内置的res.sendFile函数。

如果您希望此图片仅供当前用户使用,您可以使用passportjs之类的授权框架,甚至包括所有内容的huntjs等高级框架。

以下示例检查req.user是否存在,然后向JSON发送带有图像链接或图像本身的链接。 如果图片很小,最好发送base64编码版本。

app.get('/info', function(req,res){
    if(req.user){
        res.status(200).json({
            'imageName':'some image',
            'imageUrl':'/someImageUrlOnlyForAuthorizedUsers.jpg'
        });
    } else {
        res.status(401).send('Authorization required!');
    }
});

app.get('/someImageUrlOnlyForAuthorizedUsers.jpg', function(req,res){
    if(req.user){
        res.sendFile('./mySecretImage.jpg');
    } else {
        res.status(401).send('Authorization required!');
    }
});