fup-node
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

fup-node

Upload files to storage in nodejs regardless of the backend framework or library.

Documentation see full documentation

Installation in the backend

$ npm install fup-node

Example

Backend use

import { FupNode } from "fup-node";

// Upload files to in the current project folder, default use relative path
const fileUpload = new FupNode({
  path: "tests/upload_files",
});

// Body file upload from frontend, this is an example of a file body.
// This object is sent from the frontend.
const bodyFile = {
  name: "file.txt",
  type: "text/plain",
  lastModified: new Date().getTime(),
  buffer: "SGk=", // Buffer from file upload
};

const nameFile = await fileUpload.uploadFile(
  // Data uploaded from the frontend
  bodyFile,
  {
    types: ["text/plain"],
  }
);

Frontend use

Installation in the frontend

$ npm install fup-node-front
// Example in ReactJS
import { composeFileUpload } from "fup-node-front";

export function MyComponent() {
  const handleSubmit = async (event) => {
    event.preventDefault();
    const files = event.target.elements.file.files;
    const data = {
      file: await composeFileUpload(files),
    };

    try {
      // Example api url
      const response = await fetch("https://example.com/api/upload-file", {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
        },
        body: JSON.stringify(data),
      });

      if (!response.ok) console.log("Error sending file.");

      alert("File upload ok!");
    } catch (error) {
      alert(error.message);
    }
  };

  return (
    <form onSubmit={handleSubmit}>
      <label htmlFor="file">Select a file:</label>
      <input type="file" id="file" name="file" />
      <br />
      <br />
      <button type="submit">Upload</button>
    </form>
  );
}

Documentation

Build documentation

$ npm run docs:build

Preview documentation

Preview documentation to see if everything went well before publishing it.

$ npm run docs:preview

Documentation in development

$ npm run docs:dev

Run tests

$ npm run test

License

MIT

Package Sidebar

Install

npm i fup-node

Weekly Downloads

69

Version

1.0.3

License

MIT

Unpacked Size

2.45 MB

Total Files

73

Last publish

Collaborators

  • daniel1zzz