Nuxt/examples/auth-routes/server.js

54 lines
1.4 KiB
JavaScript
Raw Normal View History

2017-02-03 14:09:27 +00:00
const Nuxt = require('../../')
2016-12-04 18:16:10 +00:00
const bodyParser = require('body-parser')
2016-12-07 16:03:52 +00:00
const session = require('express-session')
2016-12-04 18:16:10 +00:00
const app = require('express')()
2017-02-03 14:09:27 +00:00
const host = process.env.HOST || '127.0.0.1'
const port = process.env.PORT || '3000'
2016-12-04 18:16:10 +00:00
// Body parser, to access req.body
app.use(bodyParser.json())
2016-12-07 16:03:52 +00:00
// Sessions to create req.session
app.use(session({
secret: 'super-secret-key',
resave: false,
saveUninitialized: false,
cookie: { maxAge: 60000 }
2016-12-04 18:16:10 +00:00
}))
// POST /api/login to log in the user and add him to the req.session.authUser
app.post('/api/login', function (req, res) {
if (req.body.username === 'demo' && req.body.password === 'demo') {
req.session.authUser = { username: 'demo' }
return res.json({ username: 'demo' })
}
2017-02-03 14:09:27 +00:00
res.status(401).json({ message: 'Bad credentials' })
2016-12-04 18:16:10 +00:00
})
2016-12-07 16:03:52 +00:00
// POST /api/logout to log out the user and remove it from the req.session
app.post('/api/logout', function (req, res) {
delete req.session.authUser
res.json({ ok: true })
2016-12-04 18:16:10 +00:00
})
2017-02-03 14:09:27 +00:00
// Import and Set Nuxt.js options
2016-12-08 15:39:27 +00:00
let config = require('./nuxt.config.js')
2017-02-03 14:09:27 +00:00
config.dev = !(process.env.NODE_ENV === 'production')
// Init Nuxt.js
2016-12-08 15:39:27 +00:00
const nuxt = new Nuxt(config)
2017-02-03 14:09:27 +00:00
app.use(nuxt.render)
// Build only in dev mode
if (config.dev) {
nuxt.build()
.catch((error) => {
console.error(error) // eslint-disable-line no-console
process.exit(1)
})
}
// Listen the server
app.listen(port, host)
console.log('Server listening on ' + host + ':' + port) // eslint-disable-line no-console