在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,将来可能会完成一个易于管理的项目。

广告
将在 10 秒后关闭
bannerAds