file-api-mongodb

0.3.1 • Public • Published

publish npm package publish npm package

file-api-mongodb

Store files in MongoDb accessed through an express middleware.

const {multerUpload} = require("file-api-mongodb");

const {upload, storage } = multerUpload({bucketName : 'darbyBucket'});
// It's very crucial that the file name matches the name attribute in your html
appRouter.post('/', upload.single('myFile'),
    (req, res) => {
    //the successful result of the file upload is in "fileData" field.
    res.json(req.fileData);
});

appRouter.get('/', (req,res) => {
    storage.getFileList(res);
});

appRouter.get('/:fileName', (req,res) => {
    storage.getFile(res, req.params.fileName);
});

appRouter.get('/id/:id', (req,res) => {
    storage.getFileById(res, req.params.id);
});

appRouter.delete('/:id', (req,res) => {
    storage.deleteFile(req.params.id, (err) => {
        if(err)
            res.status(500).send(err.message);
        else
            res.status(204).send();
    });
});

To scale an image that is being uploaded, set the request parameter "imageWidth"

appRouter.post('/image/:imageWidth', upload.single('myFile'),
    (req, res) => {
        res.json(req.fileData);
    });

Options

Two options are available for the constructor:

variable description
connectDb (optional) function that returns db connection. If a connectDb function is not provider, the variable "process.env.DB_CONN" is used mongoClient.connect(process.env.DB_CONN)
bucketName (optional) the default value is "fileBucket"
dbName (optional) the default value is "identity" is the database name

The storage object was derived from the following template

StorageEngine

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
0.3.10latest

Version History

VersionDownloads (Last 7 Days)Published
0.3.10
0.2.70
0.2.60
0.2.40
0.2.20
0.2.00
0.1.00
0.0.210
0.0.200
0.0.190
0.0.180
0.0.170
0.0.160
0.0.150
0.0.140
0.0.130
0.0.120
0.0.110
0.0.100
0.0.90
0.0.80
0.0.70
0.0.60
0.0.30
0.0.20

Package Sidebar

Install

npm i file-api-mongodb

Weekly Downloads

0

Version

0.3.1

License

MIT

Unpacked Size

10.6 kB

Total Files

7

Last publish

Collaborators

  • vmartinez