Load static dir and url from config

This commit is contained in:
Elliot DeNolf
2019-01-14 22:39:07 -05:00
parent baf32319f7
commit 68f7a5a16b
5 changed files with 32 additions and 20 deletions

View File

@@ -8,22 +8,24 @@ const classifyFile = (file) => {
}
};
function upload(req, res) {
if (Object.keys(req.files).length === 0) {
return res.status(400).send('No files were uploaded.');
}
function upload(req, res, next, config) {
if (Object.keys(req.files).length === 0) {
return res.status(400).send('No files were uploaded.');
}
mkdirp('./uploads', (err) => {
if (err) console.error(err);
});
mkdirp(config.staticDir, (err) => {
if (err) {
console.error(err);
res.status(500).send('Upload failed.');
}
});
req.files.file.mv(`${config.staticDir}/${req.files.file.name}`, (err) => {
if (err) return res.status(500).send(err);
req.files.file.mv(`./uploads/${req.files.file.name}`, (err) => {
if (err) return res.status(500).send(err);
classifyFile(req.files.file);
res.send('File uploaded.');
})
classifyFile(req.files.file);
res.send('File uploaded.');
})
}
export default { upload };

View File

@@ -1,5 +1,4 @@
import mongoose from 'mongoose';
import mongooseIntl from 'mongoose-intl';
import passport from 'passport';
import express from 'express';
import methodOverride from 'method-override';
@@ -21,6 +20,8 @@ module.exports = {
});
options.app.use(fileUpload());
const staticUrl = options.config.staticUrl ? options.config.staticUrl : `/${options.config.staticDir}`;
options.app.use(staticUrl, express.static(options.config.staticDir));
// Configure passport for Auth
options.app.use(passport.initialize());
@@ -41,7 +42,7 @@ module.exports = {
next();
});
options.router.use('/upload', assetRoutes);
options.router.use('/upload', assetRoutes(options.config));
options.app.use(language(config.localization));

View File

@@ -3,9 +3,15 @@ import passport from 'passport';
import uploadsCtrl from '../controllers/uploads.controller';
const router = new express.Router();
const uploadRouter = config => {
router
.route('')
.post(
passport.authenticate('jwt', { session: false }),
(req, res, next) => uploadsCtrl.upload(req, res, next, config)
);
router
.route('')
.post(passport.authenticate('jwt', { session: false }), uploadsCtrl.upload);
return router;
};
export default router;
export default uploadRouter;