add MongoDB
This commit is contained in:
parent
ef96480b4b
commit
5a24db2a44
|
@ -1,15 +1,20 @@
|
|||
Prerequisite
|
||||
===============
|
||||
=================
|
||||
|
||||
Install node at https://nodejs.org/
|
||||
Install Node.js at https://nodejs.org/
|
||||
Install yarn at https://yarnpkg.com/
|
||||
Install MongoDB at https://www.mongodb.com/
|
||||
|
||||
Install Package
|
||||
================
|
||||
=================
|
||||
yarn
|
||||
|
||||
Running
|
||||
=================
|
||||
[Development] yarn run dev
|
||||
[Production] yarn run build; yarn run start
|
||||
[for Development]
|
||||
mongod
|
||||
yarn run dev
|
||||
[for Production]
|
||||
mongod
|
||||
yarn run build; yarn run start
|
||||
|
||||
|
|
|
@ -12,11 +12,13 @@
|
|||
"babel-plugin-styled-components": "^1.1.4",
|
||||
"babel-preset-stage-0": "^6.24.1",
|
||||
"body-parser": "^1.17.1",
|
||||
"connect-session-sequelize": "^4.1.0",
|
||||
"connect-mongo": "^1.3.2",
|
||||
"express": "^4.15.2",
|
||||
"express-session": "^1.15.2",
|
||||
"immutable": "^3.8.1",
|
||||
"lusca": "^1.4.1",
|
||||
"mongoose": "^4.10.5",
|
||||
"morgan": "^1.8.2",
|
||||
"next": "^2.3.1",
|
||||
"next-redux-wrapper": "^1.1.2",
|
||||
"nprogress": "^0.2.0",
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
const express = require('express');
|
||||
process.env.DB_URI = process.env.DB_URI || 'mongodb://localhost/nextepc';
|
||||
|
||||
const next = require('next');
|
||||
|
||||
const dev = process.env.NODE_ENV != 'production';
|
||||
const app = next({ dev });
|
||||
const handle = app.getRequestHandler();
|
||||
|
||||
const express = require('express');
|
||||
const bodyParser = require('body-parser');
|
||||
const morgan = require('morgan');
|
||||
const session = require('express-session');
|
||||
const SequelizeStore = require('connect-session-sequelize')(session.Store);
|
||||
|
||||
const mongoose = require('mongoose');
|
||||
const MongoStore = require('connect-mongo')(session);
|
||||
|
||||
const passport = require('passport');
|
||||
require('./passport');
|
||||
const csrf = require('lusca').csrf();
|
||||
|
@ -16,10 +22,23 @@ const secret = process.env.SECRET_KEY || 'change-me';
|
|||
const models = require('./models');
|
||||
const api = require('./routes');
|
||||
|
||||
app.prepare()
|
||||
.then(() => {
|
||||
return models.sequelize.sync();
|
||||
})
|
||||
mongoose.Promise = global.Promise;
|
||||
const db = mongoose.connection;
|
||||
db.on('error', console.error);
|
||||
db.once('open', () => {
|
||||
console.log('Connected to mongod server');
|
||||
});
|
||||
|
||||
if ({ dev }) {
|
||||
mongoose.set('debug', true);
|
||||
}
|
||||
|
||||
mongoose.connect(process.env.DB_URI);
|
||||
|
||||
Promise.all([
|
||||
app.prepare(),
|
||||
models.sequelize.sync()
|
||||
])
|
||||
.then(() => {
|
||||
const server = express();
|
||||
|
||||
|
@ -43,7 +62,10 @@ app.prepare()
|
|||
|
||||
server.use(session({
|
||||
secret: secret,
|
||||
store: new SequelizeStore({ db: models.sequelize, table: 'Session' }),
|
||||
store: new MongoStore({
|
||||
mongooseConnection: mongoose.connection,
|
||||
ttl: 60 * 60 * 24 * 7 * 2
|
||||
}),
|
||||
resave: false,
|
||||
rolling: true,
|
||||
saveUninitialized: true,
|
||||
|
@ -66,6 +88,10 @@ app.prepare()
|
|||
return handle(req, res);
|
||||
});
|
||||
|
||||
if ({ dev }) {
|
||||
server.use(morgan('tiny'));
|
||||
}
|
||||
|
||||
server.listen(3000, err => {
|
||||
if (err) throw err;
|
||||
console.log('> Ready on http://localhost:3000');
|
||||
|
|
146
webui/yarn.lock
146
webui/yarn.lock
|
@ -166,9 +166,9 @@ async-each@^1.0.0:
|
|||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
|
||||
|
||||
async@^2.1.2:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-2.4.1.tgz#62a56b279c98a11d0987096a01cc3eeb8eb7bbd7"
|
||||
async@2.1.4, async@^2.1.2:
|
||||
version "2.1.4"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4"
|
||||
dependencies:
|
||||
lodash "^4.14.0"
|
||||
|
||||
|
@ -954,6 +954,10 @@ base64-js@^1.0.2:
|
|||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1"
|
||||
|
||||
basic-auth@~1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884"
|
||||
|
||||
bcrypt-pbkdf@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
|
||||
|
@ -980,7 +984,11 @@ block-stream@*:
|
|||
dependencies:
|
||||
inherits "~2.0.0"
|
||||
|
||||
bluebird@^3.3.4, bluebird@^3.4.6:
|
||||
bluebird@2.10.2:
|
||||
version "2.10.2"
|
||||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.10.2.tgz#024a5517295308857f14f91f1106fc3b555f446b"
|
||||
|
||||
bluebird@^3.0, bluebird@^3.3.4, bluebird@^3.4.6:
|
||||
version "3.5.0"
|
||||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
|
||||
|
||||
|
@ -1090,6 +1098,10 @@ browserslist@^1.4.0:
|
|||
caniuse-db "^1.0.30000639"
|
||||
electron-to-chromium "^1.2.7"
|
||||
|
||||
bson@~1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/bson/-/bson-1.0.4.tgz#93c10d39eaa5b58415cbc4052f3e53e562b0b72c"
|
||||
|
||||
buffer-shims@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
|
||||
|
@ -1260,12 +1272,12 @@ concat-map@0.0.1:
|
|||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
|
||||
connect-session-sequelize@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/connect-session-sequelize/-/connect-session-sequelize-4.1.0.tgz#d402749c3bebd79209192c164c090742b3fe2011"
|
||||
connect-mongo@^1.3.2:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/connect-mongo/-/connect-mongo-1.3.2.tgz#7cbf58dfff26760e5e00e017d0a85b4bc90b9d37"
|
||||
dependencies:
|
||||
debug "^2.1.1"
|
||||
deep-equal "^1.0.1"
|
||||
bluebird "^3.0"
|
||||
mongodb ">= 1.2.0 <3.0.0"
|
||||
|
||||
console-browserify@^1.1.0:
|
||||
version "1.1.0"
|
||||
|
@ -1430,20 +1442,22 @@ debug@2.6.4:
|
|||
dependencies:
|
||||
ms "0.7.3"
|
||||
|
||||
debug@2.6.7, debug@^2.1.1, debug@^2.2.0:
|
||||
debug@2.6.7:
|
||||
version "2.6.7"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e"
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@2.6.8, debug@^2.1.1, debug@^2.2.0:
|
||||
version "2.6.8"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
decamelize@^1.0.0, decamelize@^1.1.1:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
||||
|
||||
deep-equal@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
|
||||
|
||||
deep-extend@~0.4.0:
|
||||
version "0.4.2"
|
||||
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
|
||||
|
@ -1635,6 +1649,10 @@ es-to-primitive@^1.1.1:
|
|||
is-date-object "^1.0.1"
|
||||
is-symbol "^1.0.1"
|
||||
|
||||
es6-promise@3.2.1:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4"
|
||||
|
||||
escape-html@~1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
|
||||
|
@ -2073,6 +2091,10 @@ home-or-tmp@^2.0.0:
|
|||
os-homedir "^1.0.0"
|
||||
os-tmpdir "^1.0.1"
|
||||
|
||||
hooks-fixed@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/hooks-fixed/-/hooks-fixed-2.0.0.tgz#a01d894d52ac7f6599bbb1f63dfc9c411df70cba"
|
||||
|
||||
hosted-git-info@^2.1.4:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67"
|
||||
|
@ -2457,6 +2479,10 @@ jsprim@^1.2.2:
|
|||
json-schema "0.2.3"
|
||||
verror "1.3.6"
|
||||
|
||||
kareem@1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/kareem/-/kareem-1.4.1.tgz#ed76200044fa041ef32b4da8261e2553f1173531"
|
||||
|
||||
kind-of@^3.0.2:
|
||||
version "3.2.2"
|
||||
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
|
||||
|
@ -2678,6 +2704,65 @@ moment-timezone@^0.5.4:
|
|||
version "2.18.1"
|
||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
|
||||
|
||||
mongodb-core@2.1.11:
|
||||
version "2.1.11"
|
||||
resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.11.tgz#1c38776ceb174997a99c28860eed9028da9b3e1a"
|
||||
dependencies:
|
||||
bson "~1.0.4"
|
||||
require_optional "~1.0.0"
|
||||
|
||||
mongodb@2.2.27, "mongodb@>= 1.2.0 <3.0.0":
|
||||
version "2.2.27"
|
||||
resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.27.tgz#34122034db66d983bcf6ab5adb26a24a70fef6e6"
|
||||
dependencies:
|
||||
es6-promise "3.2.1"
|
||||
mongodb-core "2.1.11"
|
||||
readable-stream "2.2.7"
|
||||
|
||||
mongoose@^4.10.5:
|
||||
version "4.10.5"
|
||||
resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.10.5.tgz#7cd50ee38d5057815e83962e3985f7dd9da769ad"
|
||||
dependencies:
|
||||
async "2.1.4"
|
||||
bson "~1.0.4"
|
||||
hooks-fixed "2.0.0"
|
||||
kareem "1.4.1"
|
||||
mongodb "2.2.27"
|
||||
mpath "0.3.0"
|
||||
mpromise "0.5.5"
|
||||
mquery "2.3.1"
|
||||
ms "2.0.0"
|
||||
muri "1.2.1"
|
||||
regexp-clone "0.0.1"
|
||||
sliced "1.0.1"
|
||||
|
||||
morgan@^1.8.2:
|
||||
version "1.8.2"
|
||||
resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.8.2.tgz#784ac7734e4a453a9c6e6e8680a9329275c8b687"
|
||||
dependencies:
|
||||
basic-auth "~1.1.0"
|
||||
debug "2.6.8"
|
||||
depd "~1.1.0"
|
||||
on-finished "~2.3.0"
|
||||
on-headers "~1.0.1"
|
||||
|
||||
mpath@0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.3.0.tgz#7a58f789e9b5fd3c94520634157960f26bd5ef44"
|
||||
|
||||
mpromise@0.5.5:
|
||||
version "0.5.5"
|
||||
resolved "https://registry.yarnpkg.com/mpromise/-/mpromise-0.5.5.tgz#f5b24259d763acc2257b0a0c8c6d866fd51732e6"
|
||||
|
||||
mquery@2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/mquery/-/mquery-2.3.1.tgz#9ab36749714800ff0bb53a681ce4bc4d5f07c87b"
|
||||
dependencies:
|
||||
bluebird "2.10.2"
|
||||
debug "2.6.8"
|
||||
regexp-clone "0.0.1"
|
||||
sliced "0.0.5"
|
||||
|
||||
ms@0.7.3:
|
||||
version "0.7.3"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff"
|
||||
|
@ -2690,6 +2775,10 @@ ms@2.0.0:
|
|||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||
|
||||
muri@1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/muri/-/muri-1.2.1.tgz#ec7ea5ce6ca6a523eb1ab35bacda5fa816c9aa3c"
|
||||
|
||||
mute-stream@0.0.7, mute-stream@~0.0.4:
|
||||
version "0.0.7"
|
||||
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
|
||||
|
@ -3394,9 +3483,9 @@ read@^1.0.7:
|
|||
dependencies:
|
||||
mute-stream "~0.0.4"
|
||||
|
||||
readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.6:
|
||||
version "2.2.9"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8"
|
||||
readable-stream@2.2.7, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.6:
|
||||
version "2.2.7"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1"
|
||||
dependencies:
|
||||
buffer-shims "~1.0.0"
|
||||
core-util-is "~1.0.0"
|
||||
|
@ -3472,6 +3561,10 @@ regex-cache@^0.4.2:
|
|||
is-equal-shallow "^0.1.3"
|
||||
is-primitive "^2.0.0"
|
||||
|
||||
regexp-clone@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-0.0.1.tgz#a7c2e09891fdbf38fbb10d376fb73003e68ac589"
|
||||
|
||||
regexpu-core@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
|
||||
|
@ -3547,6 +3640,17 @@ require-main-filename@^1.0.1:
|
|||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
|
||||
|
||||
require_optional@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.0.tgz#52a86137a849728eb60a55533617f8f914f59abf"
|
||||
dependencies:
|
||||
resolve-from "^2.0.0"
|
||||
semver "^5.1.0"
|
||||
|
||||
resolve-from@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
|
||||
|
||||
resolve@^1.3.2:
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
|
||||
|
@ -3725,6 +3829,14 @@ slash@^1.0.0:
|
|||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
|
||||
|
||||
sliced@0.0.5:
|
||||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/sliced/-/sliced-0.0.5.tgz#5edc044ca4eb6f7816d50ba2fc63e25d8fe4707f"
|
||||
|
||||
sliced@1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41"
|
||||
|
||||
sntp@1.x.x:
|
||||
version "1.0.9"
|
||||
resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
|
||||
|
|
Loading…
Reference in New Issue