-
Notifications
You must be signed in to change notification settings - Fork 8
/
index.js
96 lines (85 loc) · 2.72 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
const fs = require('fs');
const path = require('path');
const http = require('http');
const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const cron = require('node-cron');
const { resetKeypair } = require('./utils/keypair');
if (!fs.existsSync(path.join(__dirname, '.public', 'keys.json')) || !fs.existsSync(path.join(__dirname, '.private', 'keys.json'))){
resetKeypair();
console.info('key-pair generated');
}
// reset keypair after some time
// ┌───────────── second (0 - 59)
// | ┌───────────── minute(0 - 59)
// | │ ┌───────────── hour(0 - 23)
// | │ │ ┌───────────── day of the month(1 - 31)
// | │ │ │ ┌───────────── month(1 - 12)
// | │ │ │ │ ┌───────────── day of the week(0 - 6)(Sunday to Saturday;
// | │ │ │ │ │ 7 is also Sunday on some systems)
// | │ │ │ │ │
// | │ │ │ │ │
// * * * * * *
const cronJob = cron.schedule("0 56 23 * * *", function() {
resetKeypair();
console.info('key-pair update job completed');
});
cronJob.start();
// const multer = require('multer');
const authRoutes = require('./routes/auth');
const app = express();
// const fileStorage = multer.diskStorage({
// destination: (req, file, cb) => {
// cb(null, 'images');
// },
// filename: (req, file, cb) => {
// cb(null, new Date().toISOString() + '-' + file.originalname);
// }
// });
// const fileFilter = (req, file, cb) => {
// if (
// file.mimetype === 'image/jpg' ||
// file.mimetype === 'image/jpeg'
// ) {
// cb(null, true);
// } else {
// cb(null, false);
// }
// };
app.use(express.json()); // application/json
// app.use(
// multer({
// fileFilter: fileFilter
// })
// .fields([{
// name: 'image',
// }]),
// );
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader(
'Access-Control-Allow-Methods',
'OPTIONS, GET, POST, PUT, PATCH, DELETE'
);
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
next();
});
app.use('/auth', authRoutes);
app.use((error, req, res, next) => {
console.log(error);
const status = error.statusCode || 500;
const message = error.message;
const data = error.data;
res.status(status).json({ message: message, data: data });
});
const server = http.createServer(app);
mongoose
.connect(
process.env.DATABASE_URL, { useNewUrlParser: true }
)
.then(result => {
console.log('Connected to Database!')
server.listen(80);
})
.catch(err => console.log(err));