first commit
This commit is contained in:
1
src/config/constants.js
Normal file
1
src/config/constants.js
Normal file
@@ -0,0 +1 @@
|
||||
export const PORT = 4400;
|
||||
0
src/db/models.js
Normal file
0
src/db/models.js
Normal file
5
src/handlers/pingTest.js
Normal file
5
src/handlers/pingTest.js
Normal file
@@ -0,0 +1,5 @@
|
||||
const homeHandler = (req, res) => {
|
||||
res.send("Home");
|
||||
};
|
||||
|
||||
export default homeHandler;
|
||||
91
src/index.js
Normal file
91
src/index.js
Normal file
@@ -0,0 +1,91 @@
|
||||
import "dotenv/config";
|
||||
|
||||
import express from "express";
|
||||
import path from "path";
|
||||
import logger from "morgan";
|
||||
import cookieParser from "cookie-parser";
|
||||
import bodyParser from "body-parser";
|
||||
import helmet from "helmet";
|
||||
import compression from "compression";
|
||||
import fileUpload from "express-fileupload";
|
||||
import routes from "./routes/index";
|
||||
import {PORT} from "./config/constants";
|
||||
|
||||
var app = express();
|
||||
|
||||
app.use(compression()); //Compress all routes
|
||||
app.use(helmet());
|
||||
app.use(fileUpload());
|
||||
|
||||
// view engine setup
|
||||
app.set("views", path.join(__dirname, "views"));
|
||||
app.set("view engine", "jade");
|
||||
|
||||
app.set("port", process.env.PORT || PORT);
|
||||
|
||||
app.use(
|
||||
logger("dev", {
|
||||
skip: function (req) {
|
||||
if (req.url == "/ping") {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
app.use(bodyParser.json({ limit: '10mb' }));
|
||||
app.use(bodyParser.urlencoded({extended: false}));
|
||||
app.use(cookieParser());
|
||||
app.use(express.static(path.join(__dirname, "dist")));
|
||||
|
||||
// Enable CORS
|
||||
app.use(function (req, res, next) {
|
||||
res.header("Access-Control-Allow-Origin", "*");
|
||||
res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, DELETE");
|
||||
res.header(
|
||||
"Access-Control-Allow-Headers",
|
||||
"Origin, X-Requested-With, Content-Type, Accept"
|
||||
);
|
||||
next();
|
||||
});
|
||||
|
||||
app.use("/", routes);
|
||||
|
||||
// catch 404 and forward to error handler
|
||||
app.use(function (req, res, next) {
|
||||
var err = new Error("Not Found");
|
||||
err.status = 404;
|
||||
next(err);
|
||||
});
|
||||
|
||||
// error handlers
|
||||
|
||||
// development error handler
|
||||
// will print stacktrace
|
||||
if (app.get("env") === "development") {
|
||||
app.use(function (err, req, res) {
|
||||
res.status(err.status || 500);
|
||||
res.render("error", {
|
||||
message: err.message,
|
||||
error: err
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// production error handler
|
||||
// no stacktraces leaked to user
|
||||
app.use(function (err, req, res) {
|
||||
res.status(err.status || 500);
|
||||
res.render("error", {
|
||||
message: err.message,
|
||||
error: {}
|
||||
});
|
||||
});
|
||||
|
||||
app.listen(process.env.PORT || PORT, () =>
|
||||
console.log(`App listening on http://localhost:${process.env.PORT || PORT}`)
|
||||
);
|
||||
|
||||
export default app;
|
||||
49
src/routes/index.js
Normal file
49
src/routes/index.js
Normal file
@@ -0,0 +1,49 @@
|
||||
import express from "express";
|
||||
import Ping from "../handlers/pingTest";
|
||||
import fs from "fs";
|
||||
import AWS from "aws-sdk";
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
/* GET home page. */
|
||||
router.get("/ping", (req, res) => {
|
||||
Ping(req, res);
|
||||
});
|
||||
|
||||
const s3 = new AWS.S3({
|
||||
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
|
||||
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
|
||||
region: process.env.AWS_REGION,
|
||||
});
|
||||
|
||||
console.log("AWS S3 Configured", process.env);
|
||||
|
||||
|
||||
const uploadBase64Image = (base64Image, bucketName, key) => {
|
||||
const buffer = Buffer.from(base64Image, 'base64');
|
||||
const params = {
|
||||
Bucket: bucketName,
|
||||
Key: key,
|
||||
Body: buffer,
|
||||
ContentEncoding: "base64",
|
||||
ContentType: "image/jpeg",
|
||||
};
|
||||
try {
|
||||
const data = s3.upload(params).promise();
|
||||
console.log(`File uploaded successfully at ${data.Location}`);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
}
|
||||
};
|
||||
|
||||
router.post("/save-data", (req, res) => {
|
||||
const { screenShot } = req.body || {};
|
||||
|
||||
let base64Image = screenShot.split(";base64,").pop();
|
||||
|
||||
uploadBase64Image(base64Image, "bs-game-data", "image_new2.jpg");
|
||||
|
||||
res.send("Home");
|
||||
});
|
||||
|
||||
export default router;
|
||||
19
src/utils/helpers.js
Normal file
19
src/utils/helpers.js
Normal file
@@ -0,0 +1,19 @@
|
||||
export const IsJsonString = str => {
|
||||
try {
|
||||
JSON.parse(str);
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
export const invalidCustomParam = (req, res, paramater, message) => {
|
||||
if (!req.query[paramater] || req.query[paramater] === "undefined" || req.query[paramater] === "null") {
|
||||
res.status(400);
|
||||
res.send({
|
||||
message: message ? message : "Invalid paramaters"
|
||||
});
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
4
src/views/error.jade
Normal file
4
src/views/error.jade
Normal file
@@ -0,0 +1,4 @@
|
||||
block content
|
||||
h1= message
|
||||
h2= error.status
|
||||
pre #{error.stack}
|
||||
Reference in New Issue
Block a user