universal-javascript-vue
Version:
A fully-isomorphic (universal) ES6/ES7 boilerplate based on Vue.js
41 lines (32 loc) • 1.07 kB
JavaScript
const chalk = require('chalk');
const cookie = require('cookie');
const jsonServer = require('json-server');
const path = require('path');
const fixtures = require('./fixture.json');
const uidCookie = require('../lib/uid-cookie');
module.exports = (app, base) => {
const user = fixtures.users[0];
app.use((req, res, next) => {
let cookies = cookie.parse(req.headers.cookie || '');
if (!cookies.uid) {
req.headers.cookie += '; ' + cookie.serialize('uid', '1');
}
req.user = user;
next();
});
app.post(base + '/user/login', (req, res) => {
uidCookie.set(req, res);
res.json(req.user).end();
});
app.use(base + '/user/logout', (req, res) => {
uidCookie.remove(req, res);
res.json({}).end();
});
app.get(base + '/users/:id', (req, res) => {
res.json(req.user).end();
});
const router = jsonServer.router(path.resolve(__dirname, './fixture.json'));
router.db._.mixin({ __id: () => '_id' });
app.use(base, router);
console.info('All "%s" requests are being mocked...', chalk.bold.green(base));
};