如何将数据从模型发送到控制器节点js
How to send data from model to controller node js
我在路由中调用控制器中的 getIndex 函数,模型中的 fetchAll 正在从数据库中获取数据,但如何存储数据并将其发送到控制器以及如何在控制器中接收数据。
这是我连接数据库的方式
const mysql = require('mysql2');
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
database: 'practice',
password: ''
});
module.exports = pool.promise();
型号
const db = require('../database');
module.exports = class User {
fetchAll(){
db.execute('SELECT * FROM users')
.then(([rows,fieldData]) => {
console.log(rows); //giving the required data
})
}
}
控制器
const User = require('../model/user');
exports.getIndex = (req,res,next) => {
const user = new User();
user.fetchAll();
res.render('index');
};
这是一个很好的例子,说明在哪里使用承诺和 async/await
在模式中执行此操作
const db = require('../database');
module.exports = class User {
fetchAll() {
return (new Promise((resolve, reject) => {
db.execute('SELECT * FROM users')
.then(([rows, fieldData]) => {
resolve(rows); // return data
})
}))
}
}
在控制器中执行此操作
const User = require('../model/user');
exports.getIndex = async (req, res, next) => {
const user = new User();
let data = await user.fetchAll();
res.render('index');
};
我在路由中调用控制器中的 getIndex 函数,模型中的 fetchAll 正在从数据库中获取数据,但如何存储数据并将其发送到控制器以及如何在控制器中接收数据。
这是我连接数据库的方式
const mysql = require('mysql2');
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
database: 'practice',
password: ''
});
module.exports = pool.promise();
型号
const db = require('../database');
module.exports = class User {
fetchAll(){
db.execute('SELECT * FROM users')
.then(([rows,fieldData]) => {
console.log(rows); //giving the required data
})
}
}
控制器
const User = require('../model/user');
exports.getIndex = (req,res,next) => {
const user = new User();
user.fetchAll();
res.render('index');
};
这是一个很好的例子,说明在哪里使用承诺和 async/await
在模式中执行此操作
const db = require('../database');
module.exports = class User {
fetchAll() {
return (new Promise((resolve, reject) => {
db.execute('SELECT * FROM users')
.then(([rows, fieldData]) => {
resolve(rows); // return data
})
}))
}
}
在控制器中执行此操作
const User = require('../model/user');
exports.getIndex = async (req, res, next) => {
const user = new User();
let data = await user.fetchAll();
res.render('index');
};