FCC-Project_File-Metadata/scripts/API/main.js

41 lines
No EOL
1,010 B
JavaScript

const bodyParser = require(`body-parser`);
const multer = require("multer");
const fs = require('fs');
const Actions = {
'metadata': require(`./actions/metadata`),
}
const FileCheckerAPI = class API {
#paths = {
"analyze": ["/api/fileanalyse"]
}
// Constructor for the API class.
constructor(INSTANCE) {
this[`instance`] = INSTANCE;
const setConfig = () => {
// Set up body-parser and multer.
this[`instance`][`use`](bodyParser[`json`]());
this[`instance`][`use`](bodyParser[`urlencoded`]({ extended: true }));
const upload = multer({ dest: 'uploads/' });
this[`instance`][`use`](upload.single('upfile'));
}
setConfig();
this.initRoutes();
};
// Set up the routes for the API.
initRoutes() {
this.#paths[`analyze`].forEach((PATH) => {
[``, `.jsp`, `.php`, `.asp`, `.html`].forEach((SUFFIX) => {
this[`instance`][`post`](PATH + SUFFIX, Actions.metadata.analyze);
});
});
}
}
module.exports = FileCheckerAPI;