node.js: mysql sequelize es6 ORM (updated)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
# encoding: utf-8
# 版权所有 ${YEAR} ©涂聚文有限公司
# 许可信息查看:
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2023.1 python 3.11
# OS        : windows 10
# Datetime  : ${DATE} ${TIME}
# User      : ${USER}
# Product   : ${PRODUCT_NAME}
# Project   : ${PROJECT_NAME}
# File      : ${NAME}.py
# explain   : 学习

  

 

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
@description ${PRODUCT_NAME}
@author geovindu  ${USER}
@project ${PROJECT_NAME}   
@package ${PACKAGE_NAME}   
@file ${FILE_NAME}
@ide webstorm 2023.1
@os windows 10
@database mysql 8.0 sql server 2019 postgreSQL 16
@dev node 20 vue.js 3.0 windows10
@date Created in  ${YEAR}/${MONTH}/${DAY}  ${TIME}
@edate eddit in 
*/

  

 

 

1.第一种方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
 * description:
 * product: WebStorm
 * project vuetstest
 * File:dbconfig.js
 * ds:$
 * IDE: webstorm 2023.1
 * OS: windows 10
 * database: mysql 8+ sql server 2019 postgreSQL 16
 * dev: node 20+ vue.js 3.0+
 * @author hp
 * @project vuetstest
 * @date 2024/8/24 8:40
 */
 
/**
 *
 * @type {{dialect: string, PASSWORD: string, pool: {min: number, max: number, idle: number, acquire: number}, HOST: string, USER: string, DB: string}}
 */
const dbConfig = {
    HOST: "localhost",
    USER: "root",
    PASSWORD: "888888",
    DB: "geovindu",
    dialect: "mysql",
    pool: {
        max: 5,
        min: 0,
        acquire: 30000,
        idle: 10000
    }
};
 
export default dbConfig;

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import Tutorial from "./tutorial.js";
 
/**
 * description:
 * product: WebStorm
 * project vuetstest
 * File: server/models/userinfo.js
 * ds:$
 * IDE: webstorm 2023.1
 * OS: windows 10
 * database: mysql 8+ sql server 2019 postgreSQL 16
 * dev: node 20+ vue.js 3.0+
 * @author hp
 * @project vuetstest
 * @date 2024/8/24 8:58
 */
/**
 *
 * @param sequelize
 * @param Sequelize
 * @returns {*}
 * @constructor
 */
const UserInfo = (sequelize, Sequelize) => {
 
    const UserInfo = sequelize.define("userInfo", {
        userName: {
            type: Sequelize.STRING
        },
        userReal:{
            type:Sequelize.STRING
        },
        userPassword: {
            type: Sequelize.STRING
        },
        userIsOk: {
            type: Sequelize.BOOLEAN
        },
        userMail:
            {
                type:Sequelize.STRING
            },
        userMobile:
            {
 
                type:Sequelize.STRING
 
            }
    });
 
    return UserInfo;
};
 
export default UserInfo;

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
 * description:
 * product: WebStorm
 * project vuetstest
 * File: server/models/toutorial.js
 * ds:$ npm install express sequelize mysql2 cors
 * IDE: webstorm 2023.1
 * OS: windows 10
 * database: mysql 8+ sql server 2019 postgreSQL 16
 * dev: node 20+ vue.js 3.0+
 * @author hp
 * @project vuetstest
 * @date 2024/8/24 8:42
 */
 
/**
 * 实体类
 * @param sequelize
 * @param Sequelize
 * @returns {*}
 * @constructor
 */
const Tutorial = (sequelize, Sequelize) => {
    const Tutorial = sequelize.define("tutorial", {
        title: {
            type: Sequelize.STRING
        },
        description: {
            type: Sequelize.STRING
        },
        published: {
            type: Sequelize.BOOLEAN
        }
    });
 
    return Tutorial;
};
 
export default Tutorial;

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/**
 * description:
 * product: WebStorm
 * project vuetstest
 * File: server/models/index.js
 * ds:$
 * IDE: webstorm 2023.1
 * OS: windows 10
 * database: mysql 8+ sql server 2019 postgreSQL 16
 * dev: node 20+ vue.js 3.0+
 * @author hp
 * @project vuetstest
 * @date 2024/8/24 8:48
 */
import dbConfig from "../dbconfig/dbConfig.js";
import Sequelize from "sequelize";
import tutorials from "./tutorial.js"
import userinfos from "./userinfo.js"
 
/**
 *
 */
const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
    host: dbConfig.HOST,
    dialect: dbConfig.dialect,
    operatorsAliases: false,
 
    pool: {
        max: dbConfig.pool.max,
        min: dbConfig.pool.min,
        acquire: dbConfig.pool.acquire,
        idle: dbConfig.pool.idle
    }
});
 
const db = {};
 
db.Sequelize = Sequelize;
db.sequelize = sequelize;
 
 
db.tutorials=tutorials(sequelize, Sequelize);
db.userinfos=userinfos(sequelize,Sequelize);
 
export default db;

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
/**
 * description:
 * product: WebStorm
 * project vuetstest
 * File: server/controllers/userinfo.js
 * ds:$
 * IDE: webstorm 2023.1
 * OS: windows 10
 * database: mysql 8+ sql server 2019 postgreSQL 16
 * dev: node 20+ vue.js 3.0+
 * @author hp
 * @project vuetstest
 * @date 2024/8/24 9:03
 */
import db  from "../models/index.js";
 
const UserInfo = db.userinfos;
const Op = db.Sequelize.Op;
 
/**
 *
 * @param {*} req
 * @param {*} res
 * @returns
 */
const usercreate = (req, res) => {
    // Validate request
    if (!req.body.title) {
        res.status(400).send({
            message: "Content can not be empty!"
        });
        return;
    }
 
    // Create a Tutorial
    const userInfo = {
        userName: req.body.userName,
        userPassword: req.body.userPassword,
        userIsOk: req.body.userIsOk ? req.body.userIsOk : false,
        userMail:req.body.userMail,
        userMobile:req.body.userMobile
    };
 
    // Save Tutorial in the database
    UserInfo.create(userInfo)
        .then(data => {
            res.send(data);
        })
        .catch(err => {
            res.status(500).send({
                message:
                    err.message || "Some error occurred while creating the userinfos."
            });
        });
};
 
/**
 *
 * @param {*} req
 * @param {*} res
 */
 
const  userfindAll = (req, res) => {
    const userName = req.query.userName;
    var condition = userName ? { userName: { [Op.like]: `%${userName}%` } } : null;
 
    UserInfo.findAll({ where: condition })
        .then(data => {
            res.send(data);
        })
        .catch(err => {
            res.status(500).send({
                message:
                    err.message || "Some error occurred while retrieving userinfos."
            });
        });
};
 
/**
 *
 * @param {*} req
 * @param {*} res
 */
const userfindOne = (req, res) => {
    const id = req.params.id;
 
    UserInfo.findByPk(id)
        .then(data => {
            if (data) {
                res.send(data);
            } else {
                res.status(404).send({
                    message: `Cannot find userinfos with id=${id}.`
                });
            }
        })
        .catch(err => {
            res.status(500).send({
                message: "Error retrieving userinfos with id=" + id
            });
        });
};
 
 
/**
 *
 * @param {*} req
 * @param {*} res
 */
const userupdate = (req, res) => {
    const id = req.params.id;
 
    UserInfo.update(req.body, {
        where: { id: id }
    })
        .then(num => {
            if (num == 1) {
                res.send({
                    message: "usrinfos was updated successfully."
                });
            } else {
                res.send({
                    message: `Cannot update userinfos with id=${id}. Maybe userinfos was not found or req.body is empty!`
                });
            }
        })
        .catch(err => {
            res.status(500).send({
                message: "Error updating userinfos with id=" + id
            });
        });
};
 
/**
 *
 * @param {*} req
 * @param {*} res
 */
const userdeleteid = (req, res) => {
    const id = req.params.id;
 
    UserInfo.destroy({
        where: { id: id }
    })
        .then(num => {
            if (num == 1) {
                res.send({
                    message: "userinfos was deleted successfully!"
                });
            } else {
                res.send({
                    message: `Cannot delete userinfos with id=${id}. Maybe userinfos was not found!`
                });
            }
        })
        .catch(err => {
            res.status(500).send({
                message: "Could not delete userinfos  with id=" + id
            });
        });
};
 
/**
 *
 * @param {*} req
 * @param {*} res
 */
const userdeleteAll = (req, res) => {
    UserInfo.destroy({
        where: {},
        truncate: false
    })
        .then(nums => {
            res.send({ message: `${nums} userinfos were deleted successfully!` });
        })
        .catch(err => {
            res.status(500).send({
                message:
                    err.message || "Some error occurred while removing all userinfos."
            });
        });
};
 
 
 
 
/**
 *
 * @param {*} req
 * @param {*} res
 */
const findAlluserIsOk = (req, res) => {
 
    UserInfo.findAll({ where: { userIsOk: true } })
        .then(data => {
            res.send(data);
        })
        .catch(err => {
            res.status(500).send({
                message:
                    err.message || "Some error occurred while retrieving userinfos."
            });
        });
};
 
 
 
// 这个命名问题 tutorials
// 使用 ES6 的默认导出语法,直接导出包含所有函数的对象
export default
{
    findAlluserIsOk,
    userdeleteAll,
    userdeleteid,
    userupdate,
    userfindOne,
    userfindAll,
    usercreate
};

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
/**
 * description:
 * product: WebStorm
 * project vuetstest
 * File: server/controllers/toutorial.js
 * ds:$
 * IDE: webstorm 2023.1
 * OS: windows 10
 * database: mysql 8+ sql server 2019 postgreSQL 16
 * dev: node 20+ vue.js 3.0+
 * @author hp
 * @project vuetstest
 * @date 2024/8/24 8:49
 */
import db  from "../models/index.js";
 
const Tutorial = db.tutorials;
const Op = db.Sequelize.Op;
 
/**
 *
 * @param req
 * @param res
 */
const create = (req, res) => {
    // Validate request
    if (!req.body.title) {
        res.status(400).send({
            message: "Content can not be empty!"
        });
        return;
    }
 
    // Create a Tutorial
    const tutorial = {
        title: req.body.title,
        description: req.body.description,
        published: req.body.published ? req.body.published : false
    };
 
    // Save Tutorial in the database
    Tutorial.create(tutorial)
        .then(data => {
            res.send(data);
        })
        .catch(err => {
            res.status(500).send({
                message:
                    err.message || "Some error occurred while creating the Tutorial."
            });
        });
};
 
/**
 *
 * @param req
 * @param res
 */
const  findAll = (req, res) => {
    const title = req.query.title;
    var condition = title ? { title: { [Op.like]: `%${title}%` } } : null;
 
    Tutorial.findAll({ where: condition })
        .then(data => {
            res.send(data);
        })
        .catch(err => {
            res.status(500).send({
                message:
                    err.message || "Some error occurred while retrieving tutorials."
            });
        });
};
 
 
/**
 *
 * @param req
 * @param res
 */
const findOne = (req, res) => {
    const id = req.params.id;
 
    Tutorial.findByPk(id)
        .then(data => {
            if (data) {
                res.send(data);
            } else {
                res.status(404).send({
                    message: `Cannot find Tutorial with id=${id}.`
                });
            }
        })
        .catch(err => {
            res.status(500).send({
                message: "Error retrieving Tutorial with id=" + id
            });
        });
};
 
 
/**
 *
 * @param req
 * @param res
 */
const update = (req, res) => {
    const id = req.params.id;
 
    Tutorial.update(req.body, {
        where: { id: id }
    })
        .then(num => {
            if (num == 1) {
                res.send({
                    message: "Tutorial was updated successfully."
                });
            } else {
                res.send({
                    message: `Cannot update Tutorial with id=${id}. Maybe Tutorial was not found or req.body is empty!`
                });
            }
        })
        .catch(err => {
            res.status(500).send({
                message: "Error updating Tutorial with id=" + id
            });
        });
};
 
/**
 *
 * @param req
 * @param res
 */
const deleteid = (req, res) => {
    const id = req.params.id;
 
    Tutorial.destroy({
        where: { id: id }
    })
        .then(num => {
            if (num == 1) {
                res.send({
                    message: "Tutorial was deleted successfully!"
                });
            } else {
                res.send({
                    message: `Cannot delete Tutorial with id=${id}. Maybe Tutorial was not found!`
                });
            }
        })
        .catch(err => {
            res.status(500).send({
                message: "Could not delete Tutorial with id=" + id
            });
        });
};
 
/**
 *
 * @param req
 * @param res
 */
const deleteAll = (req, res) => {
    Tutorial.destroy({
        where: {},
        truncate: false
    })
        .then(nums => {
            res.send({ message: `${nums} Tutorials were deleted successfully!` });
        })
        .catch(err => {
            res.status(500).send({
                message:
                    err.message || "Some error occurred while removing all tutorials."
            });
        });
};
 
 
/**
 *
 * @param req
 * @param res
 */
const findAllPublished = (req, res) => {
    Tutorial.findAll({ where: { published: true } })
        .then(data => {
            res.send(data);
        })
        .catch(err => {
            res.status(500).send({
                message:
                    err.message || "Some error occurred while retrieving tutorials."
            });
        });
};
 
 
 
// 这个命名问题 tutorials
// 使用 ES6 的默认导出语法,直接导出包含所有函数的对象
/**
 *
 */
export default
{
    findAllPublished,
    deleteAll,
    deleteid,
    update,
    findOne,
    findAll,
    create
};

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/**
 * description:
 * product: WebStorm
 * project vuetstest
 * File: server/routes/userinfo.js
 * ds:$
 * IDE: webstorm 2023.1
 * OS: windows 10
 * database: mysql 8+ sql server 2019 postgreSQL 16
 * dev: node 20+ vue.js 3.0+
 * @author hp
 * @project vuetstest
 * @date 2024/8/24 11:15
 */
import express from "express"
import userinfos from "../controllers/userinfo.js"
 
 
/**
 *
 * @param app
 */
const uroutes= app => {
 
     var router = express.Router();
 
    router.post("/user",userinfos.usercreate)
 
    router.get("/user", userinfos.userfindAll);
 
    router.get("/user/userIsOk", userinfos.findAlluserIsOk);
 
    router.get("/user/:id", userinfos.userfindOne);
 
    router.put("/user/:id", userinfos.userupdate);
 
    router.put("/user/:id", userinfos.userdeleteid);
 
    router.put("/user", userinfos.userdeleteAll);
 
    app.use('/api',router);
};
 
export default uroutes;

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
 * description:
 * product: WebStorm
 * project vuetstest
 * File: server/routes/toutorial.js
 * ds:$
 * IDE: webstorm 2023.1
 * OS: windows 10
 * database: mysql 8+ sql server 2019 postgreSQL 16
 * dev: node 20+ vue.js 3.0+
 * @author hp
 * @project vuetstest
 * @date 2024/8/24 8:50
 */
import express from "express"
import tutorials from "../controllers/tutorial.js"
 
 
/**
 *
 * @param app
 */
const troutes= app => {
 
 
 
    var router = express.Router();
 
    // Create a new Tutorial
    router.post("/tutorials/",tutorials.create)
 
    // Retrieve all Tutorials
    router.get("/tutorials/", tutorials.findAll);
 
    // Retrieve all published Tutorials
    router.get("/tutorials/published", tutorials.findAll);
 
    // Retrieve a single Tutorial with id
    router.get("/tutorials/:id", tutorials.findOne);
 
    // Update a Tutorial with id
    router.put("/tutorials/:id", tutorials.update);
 
    // Delete a Tutorial with id
    router.put("/tutorials/:id", tutorials.deleteid);
 
    // Delete all Tutorials
    router.put("/tutorials/", tutorials.deleteAll);
 
    app.use('/api',router);
};
 
export default troutes;

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
 * description:
 * product: WebStorm
 * project vuetstest
 * File: server/routes/index.js
 * ds:$
 * package:
 * IDE: webstorm 2023.1
 * OS: windows 10
 * database: mysql 8+ sql server 2019 postgreSQL 16
 * dev: node 20+ vue.js 3.0+
 * @author hp
 * @project vuetstest
 * @date 2024/8/24 12:56
 */
 
 
import troutes from "./tutorial.js"
import uroutes from "./userinfo.js"
 
/**
 *
 * @param app
 */
const routes=app => {
 
troutes(app);
uroutes(app);
 
};
 
export default routes;

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/**
 * description:
 * product: WebStorm
 * project vuetstest
 * File: server.js
 * ds:$
 * IDE: webstorm 2023.1
 * OS: windows 10
 * database: mysql 8+ sql server 2019 postgreSQL 16
 * dev: node 20+ vue.js 3.0+
 * @author hp
 * @project vuetstest
 * @date 2024/8/24 8:52
 */
import express from "express";
import cors from "cors";
import db from "./models/index.js"
import routes from "./routes/index.js"
 
const Tutorial = db.tutorials;
//require("./app/routes/turorial.routes")(app);
 
const app = express();
 
//var routes =require("./app/routes/turorial.routes");
 
routes(app);
//app.routes();
 
var corsOptions = {
    origin: "http://localhost:8080"
};
 
app.use(cors(corsOptions));
 
// parse requests of content-type - application/json
app.use(express.json());
 
// parse requests of content-type - application/x-www-form-urlencoded
app.use(express.urlencoded({ extended: true }));
 
 
//http://localhost:8080/models
///http://localhost:8080/tutorials
//const db = require("./app/models");
db.sequelize.sync()
    .then(() => {
        console.log("Synced db.");
    })
    .catch((err) => {
        console.log("Failed to sync db: " + err.message);
    });
 
//routes(app); //这行路由编译报错
 
// simple route
app.get("/", (req, res) => {
 
    /*
      if (!req.body.title) {
        res.status(400).send({
          message: "Content can not be empty!"
        });
        return;
      }
    */
    /*
    // Create a Tutorial
    const tutorial = {
        title: '兴大兴',
        description: '涂没有什么',
        published: false,
        createdAt:'2024-08-05',
        updatedAt:'2024-08-05'
    };
 
    // Save Tutorial in the database
    Tutorial.create(tutorial)
        .then(data => {
            res.send(data);
        })
        .catch(err => {
            res.status(500).send({
                message:
                    err.message || "Some error occurred while creating the Tutorial."
            });
        });
     */
    res.json({ message: "数据添加成功!." });
 
});
 
// set port, listen for requests  http://localhost:8080
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}.`);
});

  

 

 2.第二种方式

 另一种写法也可以:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/**
 @description WebStorm
 @author geovindu  geovindu
 @project vuedemo
 @package
 @file BookKindList.js
 @ide webstorm 2023.1
 @database mysql 8.0 sql server 2019 postgreSQL 16
 @dev node 20 vue.js 3.0
 @date Created in  2024/08/19  11:06
 @edate eddit in
 */
 
const bookKind = require("../controllers/BookKindList");
module.exports = app => {
 
    const bookKind = require("../controllers/BookKindList");
    var router = require("express").Router();
 
    // Create a new BookKindList
    router.post("/bookKinds/", bookKind.bookKindcreate);
    //Create a new userinfo
 
 
 
 
    //Retrieve all BookKindList
    router.get("/bookKinds/", bookKind.bookKindfindAll);
 
 
    //Retrieve all published userinfos
    router.get("/bookKinds/", bookKind.bookKindAlluserIsOk);
 
 
    //Retrieve a single BookKindList with id
    router.get("/bookKinds/:id", bookKind.bookKindfindOne);
 
 
    //Update a BookKindList with id
    router.put("/bookKinds/:id", bookKind.bookKindupdate);
 
 
 
 
    //Delete a BookKindList with id
    router.delete("/bookKinds/:id", bookKind.bookKinddeleteid);
 
 
    //Delete all BookKindList
    router.delete("/bookKinds/", bookKind.bookKinddeleteAll);
 
 
    app.use('/api', router);
};

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/**
 @description WebStorm
 @author geovindu  geovindu
 @project vuedemo
 @package
 @file turorial.routes.js
 @ide webstorm 2023.1
 @database mysql 8.0 sql server 2019 postgreSQL 16
 @dev node 20 vue.js 3.0
 @date Created in  2024/08/19  10:45
 @edate eddit in
 */
 
/**
 *
 * @param app
 */
 
const userinfos = require("../controllers/userinfo.controller");
module.exports = app => {
    const tutorials = require("../controllers/tutorial.controller.js");
    const userinfos=require("../controllers/userinfo.controller")
    var router = require("express").Router();
 
    // Create a new Tutorial
    router.post("/tutorials/", tutorials.create);
    //Create a new userinfo
    router.post("/userinfos/", userinfos.usercreate);
 
 
    // Retrieve all Tutorials
    router.get("/tutorials/", tutorials.findAll);
    //Retrieve all userinfos
    router.get("/userinfos/", userinfos.userfindAll);
    //登錄
    router.get("/userlogin/", userinfos.userLogin);
 
    // Retrieve all published Tutorials
    router.get("/tutorials/published", tutorials.findAllPublished);
    //Retrieve all published userinfos
    router.get("/userinfos/isok", userinfos.findAlluserIsOk);
 
    // Retrieve a single Tutorial with id
    router.get("/tutorials/:id", tutorials.findOne);
    //Retrieve a single userinfos with id
    router.get("/userinfos/:id", userinfos.userfindOne);
 
 
    // Update a Tutorial with id
    router.put("/tutorials/:id", tutorials.update);
    //Update a userinfos with id
    router.put("/userinfos/:id", userinfos.userupdate);
 
 
 
    // Delete a Tutorial with id
    router.delete("/tutorials/:id", tutorials.delete);
    //Delete a userinfos with id
    router.delete("/userinfos/:id", userinfos.userdeleteid);
 
    // Delete all Tutorials
    router.delete("/tutorials/", tutorials.deleteAll);
    //Delete all userinfos
    router.delete("/userinfos/", userinfos.userdeleteAll);
 
 
    app.use('/api', router);
};

  

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/**
 @description WebStorm
 @author geovindu  geovindu
 @project vuedemo
 @package
 @file server.js
 @ide webstorm 2023.1
 @database mysql 8.0 sql server 2019 postgreSQL 16
 @dev node 20 vue.js 3.0
 @date Created in  2024/08/19  10:46
 @edate eddit in
 */
 
 
const express = require("express");
const cors = require("cors");
 
const app = express();
 
var corsOptions = {
    origin: "http://localhost:8082"
};
 
app.use(cors(corsOptions));
 
// parse requests of content-type - application/json
app.use(express.json());
 
// parse requests of content-type - application/x-www-form-urlencoded
app.use(express.urlencoded({ extended: true }));
 
const db = require("./models");
 
db.sequelize.sync()
    .then(() => {
        console.log("Synced db.");
    })
    .catch((err) => {
        console.log("Failed to sync db: " + err.message);
    });
 
// // drop the table if it already exists
// db.sequelize.sync({ force: true }).then(() => {
//   console.log("Drop and re-sync db.");
// });
 
// simple route
app.get("/", (req, res) => {
    res.json({ message: "Welcome to bezkoder application." });
});
 
 
require("./routes/turorial.routes")(app);
require("./routes/BookKindList")(app);
 
 
// set port, listen for requests
const PORT = process.env.PORT || 8081;
app.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}.`);
});

  

第3种方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/**
 @description WebStorm
 @author geovindu  geovindu
 @project vuedemo
 @package
 @file userinfo.js
 @ide webstorm 2023.1
 @os windows 10
 @database mysql 8.0 sql server 2019 postgreSQL 16
 @dev node 20 vue.js 3.0 windows10
 @date Created in  2024/08/26  10:35
 @edate eddit in
 */
 
 
module.exports = app => {
 
    const userinfos=require("../controllers/userinfo.controller")
    var router = require("express").Router();
 
 
    //Create a new userinfo
    router.post("/userinfos/", userinfos.usercreate);
 
    //Retrieve all userinfos
    router.get("/userinfos/", userinfos.userfindAll);
 
    //登錄
    router.get("/userlogin/", userinfos.userLogin);
 
 
    //Retrieve all published userinfos
    router.get("/userinfos/", userinfos.findAlluserIsOk);
 
    //Retrieve a single userinfos with id
    router.get("/userinfos/:id", userinfos.userfindOne);
 
 
    //Update a userinfos with id
    router.put("/userinfos/:id", userinfos.userupdate);
 
 
 
    //Delete a userinfos with id
    router.delete("/userinfos/:id", userinfos.userdeleteid);
 
    //Delete all userinfos
    router.delete("/userinfos/", userinfos.userdeleteAll);
 
 
    app.use('/api', router);
};

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/**
 * routes/tutorial.routes.js
 *  node 20 vue.js 3.0
 * ide: WebStorm 2023.1
 * mysql 8.0
 * npm install express sequelize mysql2 cors
 * ///http://localhost:8081/api/tutorials
 * //http://localhost:8081/api/tutorials/2
 * //http://localhost:8081/api/userinfos
 * */
 
 
/**
 *
 * @param app
 */
module.exports = app => {
 
  const tutorials = require("../controllers/tutorial.controller.js");
 
  var router = require("express").Router();
 
  // Create a new Tutorial
  router.post("/tutorials/", tutorials.create);
 
  // Retrieve all Tutorials
  router.get("/tutorials/", tutorials.findAll);
 
  // Retrieve all published Tutorials
  router.get("/tutorials/published", tutorials.findAllPublished);
 
  // Retrieve a single Tutorial with id
  router.get("/tutorials/:id", tutorials.findOne);
 
  // Update a Tutorial with id
  router.put("/tutorials/:id", tutorials.update);
 
  // Delete a Tutorial with id
  router.delete("/tutorials/:id", tutorials.delete);
 
  // Delete all Tutorials
  router.delete("/tutorials/", tutorials.deleteAll);
 
 
 
  app.use('/api', router);
};

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
 @description WebStorm
 @author geovindu  geovindu
 @project vuedemo
 @package
 @file index.js
 @ide webstorm 2023.1
 @os windows 10
 @database mysql 8.0 sql server 2019 postgreSQL 16
 @dev node 20 vue.js 3.0 windows10
 @date Created in  2024/08/26  10:29
 @edate eddit in
 */
 
 
const  troutes =require("./turorial.js")
const  uroutes =require("./userinfo.js")
 
/**
 *
 * @param app
 */
module.exports=app => {
 
    troutes(app);
    uroutes(app);
 
};

  

 

 

posted @   ®Geovin Du Dream Park™  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2018-08-24 MySql: Year, Quarter, Month, Day, Hour statistics
2016-08-24 Js: Extensible Calendar Examples
2015-08-24 csharp: SDK:CAPICOM
2015-08-24 sql server:compare data from two tables
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示