在Node.js和MySQL中,使用routes来管理API
首先
我在使用Node.js和MySQL编写后端代码,但是我逐渐感到代码变得越来越长,需要按照类别进行分组。
在这里,我打算使用路由器功能来更方便地进行管理和设置环境。
环境
Windows 10
MySQL 8.0.31
EJS: 3.1.8
Express: 4.18.2
你好 (nǐ
├─public
index.html
users.html
├─routes
users.js
└─views
server.js
编码
在路由分割之前,
const express = require('express');
const mysql = require('mysql');
const app = express();
app.set('view engine', 'ejs')
const con = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '12345678',
database: 'nodejs',
dateStrings: "date",
multipleStatements: true
});
con.connect((err) => {
if (err) {
console.log('error connecting: ' + err.stack);
return;
}
console.log('success');
;
});
});
app.get('/', function (req, res) {
res.render('index.ejs')
})
// このusersに関連したapiをカテゴリ別で分けたい
app.get('/users', (req, res) => {
const sql = "select * from users"
con.query(sql, function (err, result, fields) {
if (err) throw err;
res.render('users.ejs', { users: result })
})
})
分开之后
...
//DBをusers.jsで使用するためにexportする
module.exports = con
// 元々のusersに関するすべてのコードの代わりにこれを書いておく
app.use('/', require('./routes/users.js'));
var router = require('express').Router();
const con = require('./../server.js')
//appの代わりにrouterを使用する
router.get('/users', (req, res) => {
const sql = "select * from users"
con.query(sql, function (err, result, fields) {
if (err) throw err;
res.render('users.ejs', { users: result })
})
})
//server.jsで使用するためにexportする
module.exports = router;
最后
我主要在意的是自己感到不便的地方,大体上是有人创造了方便的功能,我就意识到了这点。
通过有计划地编写API,将来可能会完成一个易于管理的项目。