我想知道如何实现将参数传递给Model。我有3个文件server.js,controllers / news.js和models / news.js
Server.js
const newsController = require('./controllers/news');
server.get('/newsAll', newsController.all);
server.post('/getOneNews', (req, res) => {
db.get().query(`SELECT * FROM news WHERE id = ?`, [ req.body.id ],
(err, result, fields) => {
if (err) console.log('error SELECT one row', err);
});
});
控制器/ news.js
const newsModule = require('../models/news');
exports.all = (req, res) => {
newsModule.all((err, rows) => {
if (err) {
console.error(err);
return res.sendStatus(500);
}
res.send(rows);
});
};
模型/ news.js
const db = require('../db');
exports.all = (done) => {
db.get().query(`SELECT * FROM news ORDER BY id`, (err, rows) => {
if (err) {
console.log('error SELECT * FROM news MYSQL', err);
throw err;
}
done(err, rows);
});
};
所有关于方法的所有我理解,但我想知道如何将[req.body.id](< - 来自前端)此参数传递给Model以接受来自数据库的ONE新闻。没有参数,这很容易。
答案 0 :(得分:0)
您需要做的就是从req.params
对象中获取id,然后将端点设置为接受该params值。
// Server.js
server.get('/getOneNews/:id', (req, res) => {
db.get().query(`SELECT * FROM news WHERE id = ?`, [ req.params.id ],
(err, result, fields) => {
if (err) console.log('error SELECT one row', err);
});
});
希望这有帮助!