Heim > Web-Frontend > js-Tutorial > So implementieren Sie Datei-Uploads in Nodejs: Eine Schritt-für-Schritt-Anleitung

So implementieren Sie Datei-Uploads in Nodejs: Eine Schritt-für-Schritt-Anleitung

Patricia Arquette
Freigeben: 2025-01-03 01:36:39
Original
866 Leute haben es durchsucht

Einführung

Hallo, in diesem Artikel erfahren Sie, wie Sie Datei-Uploads auf einen NodeJS-Server handhaben und mit Best Practices speichern. Ich werde die Apexx-Cloud als unseren Dateispeicherdienst verwenden.

Installieren Sie die Pakete

npm i express nodemon cors multer @apexxcloud/sdk-node dotenv
Nach dem Login kopieren

Aktualisieren Sie nach der Installation Ihre package.json, um das Startskript hinzuzufügen

"scripts":{
 "start": "nodemon index.js",
 // rest of the scripts
}
Nach dem Login kopieren

Erstellen Sie eine index.js-Datei im Stammordner und erstellen Sie dann einen Ordner namens src. Erstellen Sie im src-Ordner die Ordner für Controller bzw. Routen. Ihre Ordnerstruktur sollte in etwa so aussehen.

project-root/
│
├── index.js              # Entry point of the application
├── package.json          # Project metadata and dependencies
├── package-lock.json     # Auto-generated dependency tree
├── node_modules/         # Installed dependencies
│
└── src/
    ├── controllers/      # Contains controller files
    │   └── file.controller.js
    │
    ├── routes/           # Contains route files
    │   └── file.route.js

Nach dem Login kopieren

Richten Sie die Apexx-Cloud ein

  1. Melden Sie sich bei der Apexx-Cloud an oder erstellen Sie hier ein neues Konto

  2. Navigieren Sie zu den Buckets.

  3. Klicken Sie auf „Bucket erstellen“ und geben Sie einen eindeutigen Namen für Ihren Bucket ein.

  4. Wählen Sie die gewünschte Region aus

  5. Überprüfen und erstellen Sie den Bucket

  6. Navigieren Sie zu API-Schlüsseln

  7. Klicken Sie auf „API-Schlüssel erstellen“ und geben Sie einen Namen für Ihren Schlüssel ein

  8. Überprüfen und erstellen Sie den Schlüssel

  9. Kopieren Sie Ihren geheimen Schlüssel und bewahren Sie ihn an einem sicheren Ort auf.

  10. Dann kopieren Sie auch Ihren Zugangsschlüssel.

Beginnen wir mit dem Schreiben von Code

Beginnen wir mit dem Schreiben unseres Controllers, der die Anfrage in file.controller.js verarbeitet.

// Setup our apexx cloud sdk
const ApexxCloud = require("@apexxcloud/sdk-node");
const storage = new ApexxCloud({
  accessKey: process.env.APEXXCLOUD_ACCESS_KEY,
  secretKey: process.env.APEXXCLOUD_SECRET_KEY,
  region: process.env.APEXXCLOUD_REGION,
  bucket: process.env.APEXXCLOUD_BUCKET,
});

// Upload file function
const uploadFile = async (req, res) => {
  try {
    if (!req.file) {
      return res.status(400).json({ error: "No file provided" });
    }
    const { originalname, filename, size, path, mimetype } = req.file;

    const { key, visibility } = req.query;

    const result = await storage.files.upload(req.file.buffer, {
      key: key || orginalname,
      visibility: visiblity || "public",
      contentType: mimetype,
    });

    res.status(200).json(result);
  } catch (error) {
    console.log(error);
    res.status(500).json({ error: `File upload failed: ${error.message}` });
  }
};
Nach dem Login kopieren

Zuerst importieren wir @apexxcloud/sdk-node und erstellen ein Speicherobjekt, indem wir die Anmeldeinformationen übergeben. Dann erstellen wir die Funktion „uploadFile“. In der Funktion erhalten wir den Schlüssel und die Sichtbarkeit von req.query und Dateidetails von req.file

Dann verwenden wir die Upload-Funktion des Apexx Cloud SDK, um es in die Apexx Cloud hochzuladen. Beim Hochladen können Sie die Sichtbarkeit der Datei konfigurieren. Sie kann öffentlich oder privat sein. Alle Dateien sind standardmäßig öffentlich.

Jetzt können wir die Routen in file.route.js einrichten.

const express = require("express");
const router = express.Router();
const multer = require("multer");
const { uploadFile } = require("../controllers/file.controller")

// setup multer
const upload = multer({ storage: multer.memoryStorage() });

// setup the route
router.post("/upload", upload.single("file"), uploadFile);

// export the router
module.exports = router
Nach dem Login kopieren

Dann richten wir die Datei index.js ein.

const express = require("express");
const mongoose = require("mongoose");
const dotenv = require("dotenv");
const cors = require("cors");

// load env variables
dotenv.config();

// import file route
const fileRoute = require("./src/routes/file.route");

// setup express
const app = express();

app.use(express.urlencoded({ extended: true, limit: "100mb" }));
app.use(express.json({ limit: "100mb" }));
app.use(cors());

// setup the file route
app.use(fileRoutes);

const port = 8000
app.listen(port, () => {
  console.log(`Server running at port:${port}`);
});

Nach dem Login kopieren

Öffnen Sie Ihr Terminal und führen Sie Folgendes aus:

npm start: Wenn alles richtig gelaufen ist, sollte „Server läuft auf Port: 8000“ protokolliert werden.

Testen der API

Wir testen die API mit Postman.

How to implement File uploads in Nodejs: A step by step guide

Wählen Sie „Body“ aus, überprüfen Sie die Formulardaten, fügen Sie einen Schlüssel namens „file“ hinzu und legen Sie den Typ auf „file“ fest. Laden Sie Ihre Datei hoch und klicken Sie dann auf Senden.

Sie sollten eine Antwort wie folgt erhalten:

{
    "data": {
        "message": "File uploaded successfully",
        "key": "file.png",
        "location": "https://cdn.apexxcloud.com/f/ojGnBqCLkTnI/file",
        "bucket": "your-bucket-name",
        "region": "WNAM",
        "visibility": "private",
        "size": 14513,
        "content_type": "image/png"
    }
}
Nach dem Login kopieren

Zeigt an, dass die Datei hochgeladen wurde. Gehen Sie zu Ihrem Apexx Cloud-Dashboard und dann zu Ihrem Bucket. Dort sollten Sie die Datei sehen, die Sie hochgeladen haben.

Und das war's, Sie haben Datei-Uploads erfolgreich in NodeJS implementiert und das Beste daran ist, dass Apexx Cloud Ihnen On-the-Fly-Transformationen und ein superschnelles CDN kostenlos zur Verfügung stellt. Weitere Informationen finden Sie hier. Die Dokumentation finden Sie hier.

Abschluss

In diesem Artikel haben Sie erfolgreich gelernt, wie Sie Datei-Uploads in einer NodeJS-Anwendung mit Apexx Cloud und Multer handhaben.

Im nächsten Artikel werde ich zeigen, wie man AWS S3 für Datei-Uploads verwendet, bis dahin erfolgt die Abmeldung – Ihr FII

Machen Sie sich keine Sorgen über Datei-Uploads: Melden Sie sich noch heute für Apexx Cloud an, es ist kostenlos

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Datei-Uploads in Nodejs: Eine Schritt-für-Schritt-Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage