如何以简单的方式在 Node.js 中上传图片

如何以简单的方式在 Node.js 中上传图片

为了获得更好的用户体验,请了解如何使用 Node.js 和 MongoDB 将图像上传到云端。

大纲

⭐ 为图片上传设置 Multer。

⭐ 上传图片到云端。

⭐ 将图像与 MongoDB 数据库链接。

最近,我决定构建自己的 REST API 以改进我的水果店网站的功能。

经过一番努力,我能够为该网站构建自己的 REST API。在本地,一切都运行良好,包括图形和产品数据。然而,当我将我的 API 放在 Heroku 上时,事情开始出现问题。

我的意思,让我解释一下

  • 正如您在上面的图片中看到的,当我从服务器获取数据时,它返回了所有产品及其图片链接。
  • 但是,当我单击图像链接时,我得到一个错误而不是图像。

正如您从错误消息中看到的那样,它表示该路由当前不可用。显然,这不是我想要的,所以我试图自己修复它。

最后,经过大量研究,我想出了一个我相信也对你有用的解决方案。

这就是您将在本文中学到的关于将图像上传到 并将它们链接到 数据库 使用 节点.jsMongoDB .

让我们潜入

作为了解实际工作的一种方式,您的任务是创建一个包含用户姓名、电子邮件和图片的用户配置文件。

先决条件

  • 用于 API 测试的 Thunder Client 或 Postman。
  • 代码编辑器。
  • 如果您能够理解起始文件中的代码,您就可以开始了。

让我们看看怎么做

  • 获取启动文件。

[

GitHub - fk00750/upload-image-cloud

您目前无法执行该操作。您使用另一个选项卡或窗口登录。您在另一个选项卡中退出或...

github.com

](https://github.com/fk00750/upload-image-cloud)

  • 打开您的终端并安装所有必需的软件包。

✍️ 笔记 该项目遵循 REST API 架构。

  • 为了开始,您只需创建一个环境文件并添加两个变量 MONGO_URI 和 PORT。
  • 将您的 MongoDB 连接字符串粘贴到 MONGO_URI 中。
  • 让我们运行服务器。

理想情况下,您应该得到如上图所示的结果。

  • 现在让我们检查一下路由文件夹中的一些路由并进行测试。

  • 好的,现在让我们创建用户配置文件。
  • 第一步是导入 鲻鱼 到您的多部分数据的主文件中。
  • 首先为用户配置文件图像创建存储。

代码

代码说明

  • 分配应首先存储用户图像的文件夹。
  • 您可以通过将当前日期与最多 10 亿个随机生成的数字与原始文件扩展名连接起来,轻松创建一个唯一的文件名,如下所示:

“文件名”:“1663478472266–946908179.jpg”

为多部分数据创建处理程序

  1. 创建一个函数 处理多部分数据
  2. 使用 multer 方法。
  3. Multer 接受多个选项,但在您的情况下,您需要传递您之前创建的存储配置和文件限制。
  4. 并提供一个(“图像”)

  • 在 main.js 路由文件中使用 handleMultipartData

完整代码

是时候测试你的设置了。

在迅雷客户端中,打开创建用户路由并输入用户名和带有配置文件的电子邮件。

  • 此外,您将在上传文件夹中找不到任何文件。
  • 让我们发送请求,希望一切正常。

  • 服务器响应了 用户文件 数据。
  • 您还可以注意到上传文件夹不再为空。

  • 一切正常。
  • 现在可以上传了 用户 图像到服务器。

上传图片到云端

  • 让我们继续第二步,将图像上传到云端。
  • 对于此类项目,我建议使用 Cloudinary,这是一种运行良好的免费的基于云的服务。

[

图片和视频上传、存储、优化和CDN

转换图像和视频以更快地加载而不会降低视觉效果,自动生成图像和视频变体......

cloudinary.com

](https://cloudinary.com/)

以下是您需要遵循的步骤

  • 创建一个 Cloudinary 帐户。
  • 创建帐户后,现在是时候配置您的 Web 应用程序了。

  • 单击配置您的 SDK。
  • 选择 Node.js 选项。

  • 复制密钥。
  • 转到中的创建用户路由 main.js 文件。
  • 我强烈建议您将这些键值存储在您的环境文件中。

好吧,让我们编写一些代码,然后我们将启动。

代码

代码说明

  1. 如果 filePath 未定义,则代码仅返回。
  2. 将 filePath 提供到 cloudinary.v2.uploader.upload 方法中。

让我们看看您的文件是否已成功上传到云端。

  • 太好了,我们得到了结果。

  • 在上图中,您可以看到您上传的文件链接以及用户数据。
  • 现在单击图像链接以打开图像。

  • 太好了,图像已成功上传到云端。

完整代码

将图像与数据库链接

  • 打开 用户.js 在模型的文件夹中并检查用户模式。

  • 如您所见,用户模式已经创建。欢迎您根据自己的要求进行定制。

创建用户文档

  • 去创建一个新的数据库。
  • 在 main.js 文件中导入 user.js 文件。

代码说明

  1. 第 57 行——从 req. 解构名称和电子邮件。身体。
  2. 第 61 行 — 使用 User.create() 方法等待并创建用户。
  3. 第 62 和 63 行——将名称和电子邮件对象传递给 create 方法。
  4. 第 64 行 — 为图像选项分配云图像的安全 URL。

⌛ 是时候将用户数据上传到数据库了。

  • 上图可以看到你的云镜像和数据库已经成功链接了。
  • 您可以通过单击图像链接进行验证,它已准备好访问。
  • 您还可以检查您的数据库。

结论

借助这项新功能,您可以毫不费力地将图像从计算机上传到云端,从而使您的 Node.js 应用程序运行得比以往更快、更高效。

如有任何疑问和建议,请随时与我联系 推特

更多内容在 ** 纯英语.io** .注册我们的 ** 免费每周通讯** .跟着我们 ** 推特** , ** 领英** , ** YouTube** , 和 ** 不和谐** .对增长黑客感兴趣?查看 ** 电路** .

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/38266/15372111

posted @ 2022-09-21 11:18  哈哈哈来了啊啊啊  阅读(1064)  评论(0编辑  收藏  举报