Skip to content

Commit c5bf72b

Browse files
author
kshitij soni
committed
add code
1 parent 5b78acf commit c5bf72b

File tree

7 files changed

+172
-0
lines changed

7 files changed

+172
-0
lines changed

app/config/db.config.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module.exports = {
2+
HOST: "127.0.0.1",
3+
USER: "root",
4+
PASSWORD: "root",
5+
DB: "expense",
6+
dialect: "mysql",
7+
freezeTableName: true,
8+
pool: {
9+
max: 5,
10+
min: 0,
11+
acquire: 30000,
12+
idle: 10000
13+
}
14+
};
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
const db = require("../models");
2+
const ExpenseUser = db.expenseuser;
3+
const Op = db.Sequelize.Op;
4+
5+
// Retrieve all Tutorials from the database.
6+
exports.findAll = (req, res) => {
7+
const { page, size, title } = req.query;
8+
var condition = title ? { name: { [Op.like]: `%${title}%` } } : null;
9+
10+
const { limit, offset } = getPagination(page, size);
11+
12+
ExpenseUser.findAndCountAll({
13+
where: condition,
14+
limit,
15+
offset,
16+
attributes: ["id", "name",'address','created'],
17+
})
18+
.then((data) => {
19+
const response = getPagingData(data, page, limit);
20+
res.send(response);
21+
})
22+
.catch((err) => {
23+
res.status(500).send({
24+
message:
25+
err.message || "Some error occurred while retrieving tutorials.",
26+
});
27+
});
28+
};
29+
30+
31+
const getPagination = (page, size) => {
32+
const limit = size ? +size : 1;
33+
const offset = page ? page * limit : 0;
34+
35+
return { limit, offset };
36+
};
37+
38+
const getPagingData = (data, page, limit) => {
39+
const { count: totalItems, rows: tutorials } = data;
40+
const currentPage = page ? +page : 0;
41+
const totalPages = Math.ceil(totalItems / limit);
42+
43+
return { totalItems, tutorials, totalPages, currentPage };
44+
};

app/models/expenseuser.model.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
module.exports = (sequelize,Sequelize) => {
2+
const ExpenseName = sequelize.define("r_expense_user", {
3+
name: {
4+
type: Sequelize.STRING
5+
},
6+
email: {
7+
type: Sequelize.STRING
8+
},
9+
phone: {
10+
type: Sequelize.STRING
11+
},
12+
address: {
13+
type: Sequelize.STRING
14+
},
15+
token: {
16+
type: Sequelize.STRING
17+
},
18+
status: {
19+
type: Sequelize.BOOLEAN
20+
},
21+
type: {
22+
type: Sequelize.BOOLEAN
23+
},
24+
created: {
25+
type: Sequelize.DATE
26+
},
27+
},{tableName : 'r_expense_user'});
28+
29+
return ExpenseName;
30+
};
31+

app/models/index.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
const dbConfig = require("../config/db.config.js");
2+
3+
const Sequelize = require("sequelize");
4+
const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
5+
host: dbConfig.HOST,
6+
dialect: dbConfig.dialect,
7+
operatorsAliases: 0,
8+
define: {
9+
"timestamps": false
10+
},
11+
freezeTableName: true,
12+
logging:true,
13+
pool: {
14+
max: dbConfig.pool.max,
15+
min: dbConfig.pool.min,
16+
acquire: dbConfig.pool.acquire,
17+
idle: dbConfig.pool.idle
18+
}
19+
});
20+
21+
const db = {};
22+
23+
db.Sequelize = Sequelize;
24+
25+
db.expenseuser = require("./expenseuser.model.js")(sequelize,Sequelize);
26+
27+
module.exports = db;

app/routes/turorial.routes.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module.exports = (app) => {
2+
const expense_user = require("../controllers/expenseuser.controller.js");
3+
var router = require("express").Router();
4+
router.get("/parties", expense_user.findAll);
5+
app.use("/api", router);
6+
app.use("*", (req, res) => res.status(404).json({ error: "not found" }));
7+
};

package.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"name": "js-express-sequelize-mysql",
3+
"version": "1.0.0",
4+
"description": "Node.js Rest Apis with Express, Sequelize pagination & MySQL.",
5+
"main": "server.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1"
8+
},
9+
"keywords": [
10+
"node",
11+
"js",
12+
"express",
13+
"sequelize",
14+
"pagination",
15+
"mysql",
16+
"rest",
17+
"api"
18+
],
19+
"author": "stemword",
20+
"license": "ISC",
21+
"dependencies": {
22+
"body-parser": "^1.19.0",
23+
"cors": "^2.8.5",
24+
"express": "^4.17.1",
25+
"mysql2": "^2.1.0",
26+
"sequelize": "^5.21.12"
27+
}
28+
}

server.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
const express = require("express");
2+
const bodyParser = require("body-parser");
3+
const cors = require("cors");
4+
5+
const app = express();
6+
app.use(cors());
7+
app.use(bodyParser.json());
8+
app.use(bodyParser.urlencoded({ extended: true }));
9+
10+
const db = require("./app/models");
11+
app.get("/", (req, res) => {
12+
res.json({ message: "Welcome to application." });
13+
});
14+
15+
require("./app/routes/turorial.routes")(app);
16+
17+
// set port, listen for requests
18+
const PORT = 4568;
19+
app.listen(PORT, () => {
20+
console.log(`Server is running on port ${PORT}.`);
21+
});

0 commit comments

Comments
 (0)