MVC с узла / экспресс и MySQL - PullRequest
0 голосов
/ 04 ноября 2018

Я запутался. Все учебники, которые я вижу с mySql, заканчиваются примерно так:

в моделях / dbconnection.js

    var mysql = require('mysql');
port = process.env.PORT || 3333;

if (port == 3333) {
    var connection = mysql.createConnection({
        host: 'localhost',
        port: 3306,
        user: 'root',
        password: 'root',
        database: 'nameDataBase',
        insecureAuth: true
    });
} else {
    console.log("Error");
}

connection.connect();
module.exports = connection;

А потом в маршрутах / user.js

...    

router.delete("/:id", verifyToken, (req, res) => {
        const newLocal = "DELETE FROM login_user WHERE id = ?";
        connection.query(newLocal, [req.params.id], (err,rows,fields) => {
            if (err) {
                res.sendStatus(500);
                return;
            }
            console.log(rows.affectedRows);
            res.status(200).send({delete: rows});
        });

});

module.exports = router;

модель и контроллер здесь не смешиваются? Если завтра я захочу изменить тип базы данных, мне придется внести изменения в модель и в маршруты. Разве я не должен делать такие функции, как getAllUsersBlaBla(params) в чем-то вроде models/user.js, а затем вызывать его из routes/user.js?

1 Ответ

0 голосов
/ 12 ноября 2018

Я согласен. В маршрутизаторе не должно быть запросов к базе данных, который считается частью контроллера в MVC.

Модель должна предоставлять функции-оболочки для запросов к базе данных, которые можно вызывать из контроллера.

Многие приложения для узлов (и, возможно, учебные пособия) выберут простоту, а не модульность, поэтому вы увидите такой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...