capstone-file-manager
v1.0.3
Published
The module reveals simple API, which helps CapstoneJS developers to store files locally, without using third-party services
Downloads
53
Maintainers
Readme
CapstoneJS file manager
The tool lets you store files on your server, without using third-party services like Cloudinary. It simplifies the original capstone Storage API, takes care about setting File storage for your files, deletes useless files.
Requirements
Node >= v8.9.2 Mongo >= v3.4.0 The tool has NOT been tested on earlier versions.
Notice!
As far as you're using capstone-file-manager
, you should not set CapstoneJS file Storage, cause it's set inside of capstone-file-manager
.
Installing
npm install capstone-file-manager
Getting started
capstone-file-manager
is meant to be used in models. In order to use the it do the following:
- Require
capstone
andcapstone-file-manager
(returns a javascript class). - Create an instance of
capstone.List
. - Create a new instance of
capstone-file-manager
and pass the instance ofcapstone.List
to constructor. - Call
init
method on newly created instance ofcapstone-file-manager
. - Call
add
method on the instance ofcapstone.List
.
const capstone = require('capstone);
const capstoneFileManager = require('capstone-file-manager');
const model = new capstone.List('modelName');
new capstoneFileManager(model).init();
model.add(); // add fields here
Configuration
Options are used as follows:
capstone.init({
'kfm public url': '/images/',
'kfm virtual prop key': 'src',
'kfm uploaded files storage': '/uploads/images/'
});
There are three of them presented:
kfm uploaded files storage
Mandatory
Set path on the server where files will be stored.
Use case:
If you set the option to /uploads/images/
, files will be stored in /uploads/images/
folder on your server.
kfm public url
Optional
Set the url where files will be reachable.
Default value: /images/
Use case:
You can set this option to /path-to-images/
, then file with the name my-file.jpg
will be reachable on your-domain.com/path-to-images/my-file.jpg
kfm virtual prop key
Optional
Set the name of virtual property, where link to the file will be stored.
Default value: src
Use case:
Imagine, you have the following model:
const capstone = require('capstonejs');
const types = capstone.Field.Types;
const fileManager = require('capstone-file-manager');
const model = new capstone.List('modelName');
new fileManager(model).init();
model.add({
title: { type: types.Text },
icon: { type: types.File }
});
... and later, in your template, you're gonna to get the link to the file as follows (in example we're using pug
template engine, but this is not mandatory):
img(src= icon.src)
Pay attention, that the link to the file is stored in src
property. If you change the kfm virtual prop key
to, for instance, myBeatifulVirtualProp
, then link to the file will be stored there, like:
img(src= icon.myBeatifulVirtualProp)
How it works
The tool is built according to Facade pattern. It reveals only one simple method init and for correct work requires model. Capstone-file-manager wraps the capstone add
method and does some magic inside.