Javascript expressjs发送文件数组和json作为响应
我试图将一组文件和一些json格式的属性作为一个响应发送回客户机,当一个路由被点击时,这些属性将作为一个响应。我对Node和Express比较陌生,但我还没有找到任何方法来处理这个问题。我知道(并已成功尝试)将一个文件发送回客户端。我想发回的回复应该是这样的Javascript expressjs发送文件数组和json作为响应,javascript,node.js,express,Javascript,Node.js,Express,我试图将一组文件和一些json格式的属性作为一个响应发送回客户机,当一个路由被点击时,这些属性将作为一个响应。我对Node和Express比较陌生,但我还没有找到任何方法来处理这个问题。我知道(并已成功尝试)将一个文件发送回客户端。我想发回的回复应该是这样的 res.send([ { name:'Floral dresses', date_added:'2016-10-11 06:52:39', desi
res.send([
{
name:'Floral dresses',
date_added:'2016-10-11 06:52:39',
designer:'Victoria',
cover_photo: path.join(__dirname, '/images', '/clothes', '/cloth1.jpg'),
photos: [
path.join(__dirname, '/images', '/clothes', '/cloth1.jpg'),
path.join(__dirname, '/images', '/clothes', '/cloth2.jpg'),
path.join(__dirname, '/images', '/clothes', '/cloth3.jpg')
]
},
{
name:'Vintage Dresses',
date_added:'2016-02-08 18:12:09',
designer:'Victoria',
cover_photo: path.join(__dirname, '/images', '/clothes', '/cloth1.jpg'),
photos: [
path.join(__dirname, '/images', '/clothes', '/cloth1.jpg'),
path.join(__dirname, '/images', '/clothes', '/cloth2.jpg'),
path.join(__dirname, '/images', '/clothes', '/cloth3.jpg')
]
}
];
封面照片
和照片
是保存在文件系统中的图像
如何在Node JS中实现这一点?由于JSON不适合传输(大量)二进制数据,我建议将URL返回到图像文件,并由Express提供服务 在进行目录设置时,您需要添加: 对于JSON,最简单的方法是将路径(相对于网站的根)传递到图像文件,这样客户端就可以下载它们(或者构建完整的URL并以HTML格式提供它们) 例如:
cover_photo: '/images/clothes/cloth1.jpg'
因此,您希望发送文件的路径或实际文件。请参见:JSON不是用来传输二进制数据的。您必须用Base64或其他东西对其进行编码,JSON将变大。你不能提供指向图像文件的客户端URL,这样它们就可以通过单独的HTTP请求检索吗?@robertklep我知道json不能用于发送二进制数据,我的意思是其他属性(文件除外)都是json格式的。你的建议很好,我可以看任何教程吗?如果它只是一个图像,那么你可以转换为base64并发送到jsonI内部。我有一个问题,我的路由器位于文件夹
routes
,我想设置一个装入点static
。我应该像下面这样硬编码包含图像的文件夹的路径吗?“/static/costs/cloth1.jpg”
,还是应该像下面这样使用path.joinpath.join(u dirname,../static/costs,“../cloth.jpg”)
?最好使用path.join()
path.join
从ubuntu中的home
文件夹开始打印完全限定的文件,而不是文件的父目录script@DennisWanyonyi对不起,我以为您是指配置express.static()
。如果您指的是JSON中要使用的路径,那么它们应该是/static/costs/…
(基本上,在我的回答中用static
替换图像)。我应该像这样分配路径吗cover\u photo:/static/costs/cost1.jpg
,然后在我的html中使用的是这样的
?其中image
是我在ng repeat
语句中使用的变量?
cover_photo: '/images/clothes/cloth1.jpg'