2017-09-18 3 views
0

私はどのようにモデルにパラメータを渡すことができますか知りたいのですが。私は3ファイルserver.js、コントローラ/ news.jsとモデルを持っている/ news.jsExpress API - データベースからIDを1つ選択してください

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](<を渡すことができます方法を知りたい - FRからont-end)このパラメータは、データベースから1つのニュースを受け取るためのModelへのパラメータです。それが非常に簡単ですパラメータなし。

答えて

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

これが役に立ちます。

+0

はい、大丈夫ですが、モデルビューとコントローラでこれを実現するには、すべて1つのファイルではありません。 –

+0

モデルビューではどういう意味ですか? – Rowland

+0

MVCパターン、私はこれを1つのファイルではなく、method.allのようにしたいと思います。 –

関連する問題