53 lines
1.7 KiB
JavaScript
53 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
var port = process.env.PORT || 3000;
|
|
var express = require('express');
|
|
var app = express();
|
|
var bodyParser = require('body-parser');
|
|
var passport = require('passport');
|
|
var env = process.env.NODE_ENV || 'dev';
|
|
var MongoClient = require('mongodb').MongoClient;
|
|
var mongoose = require('mongoose');
|
|
var config = require('./etc');
|
|
var fs = require('fs');
|
|
|
|
app.use(bodyParser.urlencoded({ extended: true }));
|
|
app.use(bodyParser.json());
|
|
app.use(passport.initialize());
|
|
|
|
require('./models').connect(config.dbUri, {
|
|
socketTimeoutMS: 0,
|
|
keepAlive: true,
|
|
reconnectTries: 30
|
|
});
|
|
|
|
// Passport
|
|
const localSignupStrategy = require('./passport/local-signup');
|
|
const localLoginStrategy = require('./passport/local-login');
|
|
passport.use('local-signup', localSignupStrategy);
|
|
passport.use('local-login', localLoginStrategy);
|
|
|
|
// Authentication
|
|
const authCheck = require('./middleware/auth-check');
|
|
//app.use('/api', authCheck);
|
|
|
|
// Load Mongoose models
|
|
var models_path = './models'
|
|
fs.readdirSync(models_path).forEach(function (file) {
|
|
if (~file.indexOf('.js')) require(models_path + '/' + file)
|
|
})
|
|
|
|
// Routing
|
|
const authRoutes = require('./middleware/auth');
|
|
const apiRoutes = require('./middleware/api');
|
|
const transRoutes = require('./middleware/trans');
|
|
const payloadCheck = require('./middleware/payload-check');
|
|
const langCheck = require('./middleware/lang');
|
|
|
|
app.use('/auth', authRoutes);
|
|
app.use('/api', authCheck, payloadCheck, langCheck, apiRoutes);
|
|
app.use('/trans', authCheck, payloadCheck, langCheck, transRoutes);
|
|
|
|
app.listen(port, () => {
|
|
console.log('API server port: ' + port);
|
|
});
|