1
0
mirror of https://github.com/stolksdorf/homebrewery.git synced 2025-12-13 16:15:56 +00:00

Split off app into own file

This commit is contained in:
Scott Tolksdorf
2017-01-06 01:30:15 -05:00
parent 66ca09b36d
commit 174c2973f7
8 changed files with 71 additions and 76 deletions

View File

@@ -2,5 +2,6 @@
"host" : "localhost:8000", "host" : "localhost:8000",
"login_path" : "localhost:8000/dev_login", "login_path" : "localhost:8000/dev_login",
"secret" : "secretsecret", "secret" : "secretsecret",
"admin_key" : "adminadmin" "admin_key" : "adminadmin",
"log_level" : "info"
} }

View File

@@ -25,6 +25,7 @@
"express": "^4.13.3", "express": "^4.13.3",
"jwt-simple": "^0.5.1", "jwt-simple": "^0.5.1",
"lodash": "^4.17.3", "lodash": "^4.17.3",
"loglevel": "^1.4.1",
"marked": "^0.3.5", "marked": "^0.3.5",
"moment": "^2.11.0", "moment": "^2.11.0",
"mongoose": "^4.3.3", "mongoose": "^4.3.3",

View File

@@ -1,57 +1,35 @@
const express = require("express");
const app = express();
app.use(express.static(__dirname + '/build'));''
app.use(require('body-parser').json({limit: '25mb'}));
app.use(require('cookie-parser')());
const config = require('nconf') const config = require('nconf')
.argv() .argv()
.env({ lowerCase: true }) .env({ lowerCase: true })
.file('environment', { file: `config/${process.env.NODE_ENV}.json` }) .file('environment', { file: `config/${process.env.NODE_ENV}.json` })
.file('defaults', { file: 'config/default.json' }); .file('defaults', { file: 'config/default.json' });
const log = require('loglevel');
log.setLevel(config.get('log_level'));
//DB //DB
require('./server/db.js').connect(); require('./server/db.js').connect();
//Middleware //Server
const mw = require('./server/middleware.js'); const app = require('./server/app.js');
app.use(mw.account);
app.use(mw.admin);
/*
app.use((req, res, next) => {
log.debug('---------------------------');
log.debug(req.method, req.path);
//Routes if (req.params) {
app.use(require('./server/brew.api.js')); log.debug('req params', req.params);
app.use(require('./server/interface.routes.js')); }
if (req.query) {
log.debug('req query', req.query);
}
setTimeout(()=>{ next();
var test = require('./server/brew.data.js'); });
*/
test.create({text : 'test'})
.then((brew) => {
console.log(brew);
})
.catch(console.log);
test.get({})
.then((brew) => {
console.log(brew);
})
.catch(console.log);
}, 1000);
//app.use(require('./server/admin.api.js'));
//Error Handler
app.use(require('./server/error.js').expressHandler);
const PORT = process.env.PORT || 8000; const PORT = process.env.PORT || 8000;
app.listen(PORT); const httpServer = app.listen(PORT, () => {
console.log(`server on port:${PORT}`); log.info(`server on port:${PORT}`);
});
module.exports = app;

24
server/app.js Normal file
View File

@@ -0,0 +1,24 @@
const express = require("express");
const app = express();
app.use(express.static(__dirname + '/build'));
app.use(require('body-parser').json({limit: '25mb'}));
app.use(require('cookie-parser')());
//Middleware
const mw = require('./middleware.js');
app.use(mw.account);
app.use(mw.admin);
//Routes
app.use(require('./brew.api.js'));
app.use(require('./interface.routes.js'));
//app.use(require('./admin.api.js'));
//Error Handler
app.use(require('./error.js').expressHandler);
module.exports = app;

View File

@@ -1,3 +1,4 @@
const log = require('loglevel');
const mongoose = require('mongoose'); const mongoose = require('mongoose');
mongoose.Promise = Promise; mongoose.Promise = Promise;
@@ -7,17 +8,17 @@ module.exports = {
connect : ()=>{ connect : ()=>{
return new Promise((resolve, reject)=>{ return new Promise((resolve, reject)=>{
if(mongoose.connection.readyState == 1){ if(mongoose.connection.readyState == 1){
console.log('already connected'); log.info('DB already connected');
return resolve(); return resolve();
} }
mongoose.connect(dbPath, mongoose.connect(dbPath,
(err) => { (err) => {
if(err){ if(err){
console.log('Error : Could not connect to a Mongo Database.'); log.info('Error : Could not connect to a Mongo Database.');
console.log(' If you are running locally, make sure mongodb.exe is running.'); log.info(' If you are running locally, make sure mongodb.exe is running.');
return reject(err); return reject(err);
} }
console.log('mongo connected.'); log.info('DB connected.');
return resolve(); return resolve();
} }
); );

View File

@@ -1,12 +1,16 @@
const should = require('chai').use(require('chai-as-promised')).should(); const testing = require('./test.init.js');
const request = require('supertest-as-promised'); const request = require('supertest-as-promised');
const app = require('../server.js');
const app = require('app.js');
const BrewDB = require('db.js');
const apiPath = '/api/brew'; describe('/api/brew', () => {
const apiPath = '/api/brew';
before('Await DB', ()=>{
describe(apiPath, () => { return BrewDB.connect()
});
describe('POST', () => { describe('POST', () => {
it('creates a new brew', () => { it('creates a new brew', () => {
@@ -18,7 +22,7 @@ describe(apiPath, () => {
.expect(200) .expect(200)
.then((res) => { .then((res) => {
const brew = res.body; const brew = res.body;
should.exist(brew); //should.exist(brew);
brew.should.have.property('editId').that.is.a('string'); brew.should.have.property('editId').that.is.a('string');
brew.should.have.property('shareId').that.is.a('string'); brew.should.have.property('shareId').that.is.a('string');
brew.should.have.property('text').that.is.a('string'); brew.should.have.property('text').that.is.a('string');

View File

@@ -1,19 +1,19 @@
const should = require('chai').use(require('chai-as-promised')).should(); const testing = require('./test.init.js');
const BrewDB = require('../server/db.js'); const BrewDB = require('db.js');
const BrewData = require('../server/brew.data.js'); const BrewData = require('brew.data.js');
describe('BrewDB', () => { describe('BrewDB', () => {
before('Await DB', ()=>{ before('Await DB', ()=>{
return BrewDB.connect().catch() return BrewDB.connect()
}); });
it('generates ID on save', () => { it('generates ID on save', () => {
return BrewData.create({ return BrewData.create({
text : "Brew Text" text : "Brew Text"
}).then((brew) => { }).then((brew) => {
should.exist(brew); //should.exist(brew);
brew.should.have.property('editId').that.is.a('string'); brew.should.have.property('editId').that.is.a('string');
brew.should.have.property('shareId').that.is.a('string'); brew.should.have.property('shareId').that.is.a('string');
brew.should.have.property('text').that.is.a('string'); brew.should.have.property('text').that.is.a('string');

View File

@@ -1,23 +1,9 @@
require('app-module-path').addPath('./server'); require('app-module-path').addPath('./server');
// initialize config
const config = require('nconf')
.argv()
.env({ lowerCase: true })
.file('testing', { file: `./config/testing.json` })
.file('environment', { file: `../config/${process.env.NODE_ENV}.json` })
.file('defaults', { file: '../config/default.json' });
const should = require('chai').use(require('chai-as-promised')).should(); const should = require('chai').use(require('chai-as-promised')).should();
const log = require('loglevel');
log.setLevel('trace');
module.exports = { module.exports = {
config: config, should: should
should: should,
clearCache: () => {
return new Promise((resolve, reject) => {
return resolve();
});
},
}; };