我正在尝试向客户端发送一个文件数组,以及一些json格式的属性作为路由被命中时的一个响应。我是Node和Express的新手,但我还是没有找到处理这个问题。我知道(并且已成功尝试)将一个文件发送回客户端。我想发回的那种回复应该是这样的
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')
]
}
];
cover_photo
和photos
是保存在文件系统中的图像。
如何在Node JS中实现这一目标?
答案 0 :(得分:1)
由于JSON不太适合传输(大量)二进制数据,我建议将URL返回到图像文件,并让它们由Express提供服务。
进行目录设置,您需要添加static file handler:
app.use('/images', express.static(path.join(__dirname, 'images')));
对于您的JSON,最简单的方法是将路径(相对于网站的根目录)传递给图像文件,以便客户端可以下载它们(或构建完整的URL并以HTML格式提供它们)。
例如:
cover_photo: '/images/clothes/cloth1.jpg'