Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript expressjs发送文件数组和json作为响应_Javascript_Node.js_Express - Fatal编程技术网

Javascript expressjs发送文件数组和json作为响应

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

我试图将一组文件和一些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')
            ]
          }
        ];
封面照片
照片
是保存在文件系统中的图像


如何在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.join
path.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'