【问题标题】:Express API - select one id from databaseExpress API - 从数据库中选择一个 id
【发布时间】:2017-09-19 00:36:10
【问题描述】:

我想知道如何实现向模型传递参数。我有 3 个文件 server.js , controllers/news.js 和 models/news.js

服务器.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);
   });
  };

models/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](

【问题讨论】:

    标签: api express model-view-controller


    【解决方案1】:

    您需要做的就是从 req.params 对象中获取 id,然后将您的端点设置为接受该参数值。

    // 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);
       });
    });
    

    希望这会有所帮助!

    【讨论】:

    • 是的,thanx ,好吧,但我想通过模型视图和控制器来实现这一点,而不是全部在一个文件中。
    • 模型视图到底是什么意思?
    • MVC 模式,我不想在一个文件中执行此操作,看起来像一个 method.all,
    猜你喜欢
    • 2013-04-26
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2020-03-09
    • 2017-11-04
    • 1970-01-01
    相关资源
    最近更新 更多