Files
POCloud-Live-Reports/server/index.js
2018-03-14 17:29:43 -05:00

73 lines
1.9 KiB
JavaScript

var express = require("express");
var app = express();
var cors = require("cors");
var session = require("express-session");
var morgan = require("morgan");
var bodyParser = require("body-parser");
var MongoStore = require("connect-mongo")(session);
app.use(express.static(__dirname + "/public"));
app.use(morgan("dev"));
let whitelist = [
"localhost:3000",
"localhost:8080",
"http://localhost:8080",
"http://api.henrypump.cloud",
"http://api.henrypump.cloud:3000",
"api.henrypump.cloud",
"http://reports.henrypump.cloud",
"reports.henrypump.cloud"
];
// let whitelist = ['api.henrypump.cloud', 'http://api.henrypump.cloud', 'http://api.henrypump.cloud:3000', ];
var corsOptions = {
origin: function(origin, callback) {
if (whitelist.indexOf(origin) !== -1) {
callback(null, true);
} else {
callback(new Error("Not allowed by CORS: " + origin));
}
},
credentials: true
};
app.use(function(req, res, next) {
req.headers.origin = req.headers.origin || req.headers.host;
next();
});
app.use(cors(corsOptions));
app.set("trust proxy", 1); // trust first proxy
app.use(
session({
secret: "keyboard cat",
resave: false,
saveUninitialized: true,
store: new MongoStore({
url: "mongodb://localhost:27017/pocloud-live-reports-server"
})
})
);
app.use(bodyParser.json());
app.use(
bodyParser.urlencoded({
extended: true
})
);
app.get("/", require("./routes").index);
app.get("/deviceTypes", require("./routes").deviceTypes);
app.get("/devices/:deviceId/values", require("./routes").channelValues);
app.get("/devices", require("./routes").devices);
app.get("/companies", require("./routes").companies);
app.get("/alldata", require("./routes").getAllData);
app.post("/login", require("./routes").login);
app.get("/login", require("./routes").getLogin);
app.get("/logout", require("./routes").logout);
app.listen(3000, function() {
console.log("Listening on port 3000!");
});