npm.io
2.0.6 • Published 3 years ago

file-system-mongo

Licence
MIT
Version
2.0.6
Deps
7
Size
70 kB
Vulns
6
Weekly
0

File-System-Mongo module creates a "window explorer type" tree structure of files and folders in Atlas MongoDB database.

Installation

This is a Node.js module available through the npm registry. Installation is done using the npm install command:

$ npm install file-system-mongo

Usage

Environment variables

The following environment variables are required.

Evironment Variable Name Description
FILESYSTEM_DATABASE_URL URI connection string could reference a local database during development
ACCESS_TOKEN_SECRET A string generated by running require('crypto').randomBytes(64).toString() in the terminal will work as a secret
REFRESH_TOKEN_SECRET A string generated by running require('crypto').randomBytes(64).toString() in the terminal will work as a secret

Simple usage

const express = require('express')
var app = express()
const fileSystemMongo = require('file-system-mongo')(app)

app.use(fileSystemMongo)

app.get('/tree', function (req, res) {
  res.json({msg: 'This is CORS-enabled for all origins!'})
})

app.listen(80, function () {
  console.log('Web server listening on port 80')
})

Configuring file-system-mongo

Options:

  • white_list: "http://127.0.0.1:5500,http://localhost:5000", //default: undefined
  • access_token_expiry: "15s", //default: 900s
  • cookie_max_age: 1000*60*60, //default: 1000*60*60*24 (1 day)
  • cookie_secure: false, //default: true

REST API Endpoints

File-System-Mongo REST API provides many document-oriented endpoints, but also allows you to customize your own.

See endpoints doc for a full documentation of the endpoints

Here are the endpoints provided by File-System-Mongo that perform CRUD operations on resources in REST style. |

Customizing File-System-Mongo REST API

...
const app = express();

const { router, getFileSystem, authenticateToken } = require("./file-system-routes")(app);

router.get("/custom", authenticateToken, (req, res) => {
  const username = req.user.username;
  const fsPromises = getFileSystem(username).promises;
  console.log(fsPromises);
});

app.use(router);
...