带有node/express和mysql的mvc

bf1o4zei  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(275)

我弄糊涂了。我在mysql上看到的所有教程最后都是这样的:
在models/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;

然后在routes/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 ?

tyu7yeag

tyu7yeag1#

我同意。路由器中不应该有任何数据库查询,这在mvc中被认为是控制器的一部分。
模型应该围绕可以从控制器调用的数据库查询提供 Package 函数。
很多节点应用程序(可能还有教程)会选择简单而不是模块化,这就是为什么你会看到这样的代码。

相关问题