Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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
Node.js 上传的图像应该存储在服务器上还是响应?_Node.js_Reactjs - Fatal编程技术网

Node.js 上传的图像应该存储在服务器上还是响应?

Node.js 上传的图像应该存储在服务器上还是响应?,node.js,reactjs,Node.js,Reactjs,我使用react和node.js/mongodb。我在前端有一个表单,用于通过React上传图像。目前,我将图像名称存储在mongo db中,并将图像上载到服务器(node.js项目中的img文件夹)。这是正确的方法吗?还是我应该将图像名称存储在数据库中,然后将图像上载到我的react项目中的img文件夹,而不是节点服务器?这取决于您的项目的需要,但通常不应将图像存储在react项目中,也不应将其保留在节点服务器上 我这样做的方式是将图像上载到云存储,如Microsoft Azure存储或AWS

我使用react和node.js/mongodb。我在前端有一个表单,用于通过React上传图像。目前,我将图像名称存储在mongo db中,并将图像上载到服务器(node.js项目中的img文件夹)。这是正确的方法吗?还是我应该将图像名称存储在数据库中,然后将图像上载到我的react项目中的img文件夹,而不是节点服务器?

这取决于您的项目的需要,但通常不应将图像存储在react项目中,也不应将其保留在节点服务器上

我这样做的方式是将图像上载到云存储,如Microsoft Azure存储或AWS S3,并将图像URL存储在(mongodb)数据库中

这样可以确保即使在擦除或恢复服务器时,图像也会保持不变


希望这有帮助

服务器上的图像正常,不应该出现在您的React项目中。但通常我们有另一个静态文件服务器,用于用户上传的图像和文件。两个常见的选项是AWS s3和google云存储。让用户在执行代码的服务器(即本例中的节点服务器)上上载内容可能会让攻击者有机会上载一些看起来像图像但可以在您的服务器上运行并访问您的网站的代码的文件,这不太可能,但也可能发生,为什么要冒险呢。与运行node的服务器相比,S3等静态服务器的成本要低得多。谢谢,我不想为服务付费,这就是为什么我认为我必须上传到node.js服务器的原因。嗯,node.js项目部署到Heroku,因此我将图像上传到AWS S3的有效位置是免费的,使用期限为一年,但这对你来说已经足够了。谢谢你,我不想为服务付费,这就是为什么我认为我必须上传到node.js服务器的原因。嗯,node.js项目被部署到Heroku,因此我将图像上传到的位置实际上是无效的。我进行了相同的设置,意识到我上传的图像每天都会消失。我环顾四周,发现Heroku每天都会重新启动服务器,直到最后一次部署状态(这意味着通过您的网站上传的任何上传图像,不包括您在部署时上传的网站中的资产文件夹)将丢失。请查看此链接以获取参考不确定您计划上载和存储多少图像,但我在azure上有一些图像,我的平均每月账单约为30美分。您是否有指向azure的链接,我可以在那里查看它?这是指向azure blob存储的链接,这是关于如何将其与nodeJS一起使用的链接。这需要一些学习但我觉得这真的很值得。