angular-filemanager-nodejs-bridge
v0.1.3
Published
Node.js bridge for angular-filemanager
Downloads
6
Readme
angular-filemanager-nodejs-bridge
This project provides a backend for the fantastic angular-filemanager UI written with Node.js and Express.
CAUTION: This project is a work in progress!
Features
Currently the following operations are (partially) implemented:
TODO
- Proper error handling
- Security: Ensure users cannot access paths they are not allowed to access (e.g. passing "../../" as path)
- Missing API functions
- Implement new API for click-changes branch of angular-filemanager.
Usage (standalone)
- Checkout this Git repository:
git clone https://github.com/fkoester/angular-filemanager-nodejs-bridge.git
- Install dependencies:
npm install
- run
DATA_DIR=/tmp npm start
Change DATA_DIR variable to the root folder you want angular-filemanager to operate on 4. Configure angular-filemanager in your angular app:
app.config(function (fileManagerConfigProvider) {
var defaults = fileManagerConfigProvider.$get();
fileManagerConfigProvider.set({
listUrl: 'http://localhost:5000/list',
downloadFileUrl: 'http://localhost:5000/download',
uploadUrl: 'http://localhost:5000/upload',
removeUrl: 'http://localhost:5000/remove',
createFolderUrl: 'http://localhost:5000/createFolder',
renameUrl: 'http://localhost:5000/rename',
copyUrl: 'http://localhost:5000/copy'
});
});
Using Docker
You can also run this server via Docker using the image maestroalubia/angular-filemanager-nodejs-bridge.
The easiest way to get it up running is using docker-compose, just run docker-compose up
in the project root. This exports the host's /tmp
directory. You can change this by changing the docker-compose.yml
file.
Usage (in other express application)
If you want to integrate this bridge into your own Express application you can do so by adding it as a dependency:
Install via npm
npm install --save angular-filemanager-nodejs-bridge
Import and configure the router
const express = require('express'); const filesRouter = require('angular-filemanager-nodejs-bridge').router; const routes = express.Router(); routes.use('/files', filesRouter);
Configure a custom base dir function (optional)
const pathresolver = require('angular-filemanager-nodejs-bridge').pathresolver;
pathresolver.baseDir = function(req) {
if(req.body.username = 'foo') {
return '/foo';
}
return '/bar';
};