Skip to content

Instantly share code, notes, and snippets.

View Abazhenov's full-sized avatar

Alexei Bazhenov Abazhenov

View GitHub Profile
const Story = require('./story');
const Tag = require('./tag');
const TagLink = require('./tagLink');
const User = require('./user');
TagLink.belongsTo(Tag);
Tag.Associate([Story, User]);
@Abazhenov
Abazhenov / tag.js
Last active September 21, 2017 14:47
const db = require('../_db');
const Sequelize = require('sequelize');
class tag extends Sequelize.Model {
Associate(Models) {
for (const Model of Models) {
Model.belongsToMany(this, {
foreignKey: 'foreign_key',
constraints: false,
through: {
@Abazhenov
Abazhenov / index.js
Last active September 26, 2017 05:02
const Tag = require('./tag')
const Story = require('./story')
Tag.belongsToMany(Story)
Story.belongsToMany(Tag)
const db = require('../_db');
const Sequelize = require('sequelize');
class story extends Sequelize.Model {
//methods, hooks, etc....
}
story.init({
title: {
type: Sequelize.STRING,
const db = require('../_db');
const Sequelize = require('sequelize');
class tag extends Sequelize.Model {
//methods, hooks, etc....
}
tag.init({
name: {
type: Sequelize.STRING(100),
const asyncMiddleware = require('./utils/asyncMiddleware');
router.get('/users/:id', asyncMiddleware(async (req, res, next) => {
/*
if there is an error thrown in getUserFromDb, asyncMiddleware
will pass it to next() and express will handle the error;
*/
const user = await getUserFromDb({ id: req.params.id })
res.json(user);
}));
const asyncMiddleware = fn =>
(req, res, next) => {
Promise.resolve(fn(req, res, next))
.catch(next);
};
router.get('/user/:id', async (req, res, next) => {
try {
const user = await getUserFromDb({ id: req.params.id })
res.json(user);
} catch (e) {
//this will eventually be handled by your error handling middleware
next(e)
}
})