|
'use strict';
|
|
|
|
/**
|
|
* Module dependencies.
|
|
*/
|
|
const mongoose = require('mongoose'),
|
|
config = require('./config'),
|
|
express = require('express'),
|
|
http = require('http'),
|
|
bodyParser = require('body-parser'),
|
|
methodOverride = require('method-override'),
|
|
cookieParser = require('cookie-parser'),
|
|
app = express(),
|
|
router = express.Router(),
|
|
passport = require('passport'),
|
|
Strategy = require('passport-local').Strategy,
|
|
crypto = require('crypto'),
|
|
rfs = require('rotating-file-stream'),
|
|
accessLogStream = rfs('access.log', {
|
|
interval: '1d', // rotate daily
|
|
path: __dirname + '/log'
|
|
}),
|
|
nodemailer = require('nodemailer'),
|
|
transporter = nodemailer.createTransport({
|
|
host: config.mailserver,
|
|
port: config.mailport,
|
|
secure: config.mailsecure,
|
|
auth: {
|
|
user: config.mailuser,
|
|
pass: config.mailpass
|
|
}
|
|
}),
|
|
db = mongoose.connect('mongodb://172.29.0.102:27017/familyark', { useMongoClient: true }),
|
|
user = require('./model/user')(db),
|
|
animal = require('./model/animal')(db),
|
|
species = require('./model/species')(db),
|
|
host = '172.29.0.101',
|
|
port = 3000,
|
|
request = require('request'),
|
|
server = http.createServer(app).listen(port, host, () => {
|
|
console.log(`Listening on: ${server.address().address}:${server.address().port}`)
|
|
}),
|
|
indexRouter = require('./lib/index')(router, mongoose, request, species, animal),
|
|
userRouter = require('./lib/user')(router, passport)
|
|
require('./lib/passport')(passport, Strategy, user, crypto)
|
|
|
|
app.disable('x-powered-by')
|
|
.use(require('morgan')('combined', { stream: accessLogStream }))
|
|
.use(bodyParser.urlencoded({
|
|
extended: false
|
|
}))
|
|
.use(bodyParser.json())
|
|
.use(methodOverride())
|
|
.use(cookieParser())
|
|
.use(require('express-session')({ secret: 'a secret hat', resave: false, saveUninitialized: true }))
|
|
.use(passport.initialize())
|
|
.use(passport.session({ cookie: { maxAge: 43200 } }))
|
|
.use('/', require('connect-ensure-login').ensureLoggedIn('/user/login'), indexRouter)
|
|
.use('/user', userRouter)
|
|
.use(express.static('public'))
|