現在、クライアントからmysqlデータベースにアクセスするためにエクスプレスでノードjsバックエンドを実行しています。今、私はクライアントからの "太った"ものをnodejのバックエンドに置くために自分のコードをリファクタリングしています。nodejsでmysqlデータベースにアクセスするためのベストプラクティス
ModuleA:
router.get('/getitem/:code',(req, res) => {
let sql = `SELECT * FROM xyz WHERE CODE = ${req.params.code}`;
let query = db.query(sql, (err, result) =>{
if(err == null){
console.log(result);
res.send(result);
}else{
console.log("Error by getting item from db: " + err);
throw err;
}
});
});
し、必要に応じて他のモジュールによってhttpリクエストを経由してアクセス:
function geodataByLocationcode(locationcode){
request({
method: 'GET',
url: "http://" + server_connection.host + ":" + server_connection.port + '/getitem/' + locationcode,
headers: {
"Content-Type": "application/json"
}
},function(error, response, body){
....
}
しかし、これがベストです 私の最初のアイデアは次のように急行路線を維持することですこれを行う方法は? または、より直接的な方法でdbにアクセスする方が良いでしょうか? リクエストは現在もバックエンドから来ているので、
当社のコントローラでのデータベースへのアクセスを持っているが、良い方法ではありません...なぜにサービスモジュールを持っていませんデータベースクエリを処理しますか?あなたのコントローラにdb依存関係があるので、単体テストが難しくなります... –
これについての例やチュートリアルはありますか? – WeSt