我弄糊涂了。我在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
?
1条答案
按热度按时间tyu7yeag1#
我同意。路由器中不应该有任何数据库查询,这在mvc中被认为是控制器的一部分。
模型应该围绕可以从控制器调用的数据库查询提供 Package 函数。
很多节点应用程序(可能还有教程)会选择简单而不是模块化,这就是为什么你会看到这样的代码。