Skip to content

Commit ec9e567

Browse files
committed
Feat: add / delete / inc / dec server
1 parent bebddcf commit ec9e567

File tree

13 files changed

+1492
-48
lines changed

13 files changed

+1492
-48
lines changed

server/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,5 @@
2121
npm-debug.log*
2222
yarn-debug.log*
2323
yarn-error.log*
24+
25+
config.json

server/src/index.js renamed to server/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
const express = require('express');
2+
const sequelize = require('./models').sequelize;
23
const app = express();
34
const routes = require('./routes');
45
const cors = require('cors');
6+
57
app.use(express.json());
8+
sequelize.sync();
69
app.use(cors());
710

811
app.use('/', routes);

server/models/cart.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
const uuid = require('uuid/v4');
2+
3+
module.exports = (sequelize, DataTypes) => {
4+
return sequelize.define(
5+
'cart',
6+
{
7+
id: {
8+
type: DataTypes.UUID,
9+
defaultValue: () => uuid(),
10+
allowNull: true,
11+
unique: true,
12+
primaryKey: true
13+
},
14+
name: {
15+
type: DataTypes.STRING(40),
16+
allowNull: false
17+
},
18+
price: {
19+
type: DataTypes.INTEGER,
20+
allowNull: false
21+
},
22+
quantity: {
23+
type: DataTypes.INTEGER,
24+
allowNull: false
25+
}
26+
},
27+
{
28+
timestamps: true,
29+
paranoid: true,
30+
charset: 'utf8',
31+
collate: 'utf8_general_ci'
32+
}
33+
);
34+
};

server/models/index.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
'use strict';
2+
3+
const fs = require('fs');
4+
const path = require('path');
5+
const Sequelize = require('sequelize');
6+
const basename = path.basename(__filename);
7+
const env = process.env.NODE_ENV || 'development';
8+
const config = require(__dirname + '/../config/config.json')[env];
9+
const db = {};
10+
11+
let sequelize;
12+
if (config.use_env_variable) {
13+
sequelize = new Sequelize(process.env[config.use_env_variable], config);
14+
} else {
15+
sequelize = new Sequelize(config.database, config.username, config.password, config);
16+
}
17+
18+
fs.readdirSync(__dirname)
19+
.filter(file => {
20+
return file.indexOf('.') !== 0 && file !== basename && file.slice(-3) === '.js';
21+
})
22+
.forEach(file => {
23+
const model = sequelize['import'](path.join(__dirname, file));
24+
db[model.name] = model;
25+
});
26+
27+
// Object.keys(db).forEach(modelName => {
28+
// if (db[modelName].associate) {
29+
// db[modelName].associate(db);
30+
// }
31+
// });
32+
33+
db.sequelize = sequelize;
34+
db.Sequelize = Sequelize;
35+
36+
module.exports = db;

0 commit comments

Comments
 (0)