前提・実現したいこと
プログラミング超初心者です。progateにてインプットしたことを応用してアウトプットしたく、
node.js、mysqlを使い、家計簿アプリを作ろうとしております.
mysqlのデータを呼び込み、データの一覧と合計値を一つのページに出したいです。
app.jp
const express = require('express'); const mysql = require('mysql'); const app = express(); app.use(express.static('public')); app.use(express.urlencoded({extended: false})); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '-------', database: 'list_app' }); app.get('/', (req, res) => { res.render('hello.ejs'); }); app.get('/index',(req, res) => { connection.query( 'select * from users', (error,results) => { console.log(results); res.render('index.ejs',{users: results}); } ) }); app.listen(3000);
index.ejs
<!DOCTYPE html> <html lang="jpn" dir="ltr"> <head> <meta charset="utf-8"> <title>家計情報アプリ</title> <link rel="stylesheet" href="/css/style.css"> </head> <body> <div class="index-header"> <a href="/">家計簿アプリ</a> </div> <div class="index"> <div class="index-title"> <h2>収支一覧</h2> <a class="new-button" href="#" >+ 新規登録</a> </div> <div class="index-table-wrapper"> <div class="table-head"> <span class="date-column">日付</span> <span class="name-column">項目</span> <span class="money-column">金額</span> </div> <ul class="table-body"> <% users.forEach((item) => { %> <li> <div class="item-data"> <span class="date-column"><%= item.date %></span> <span class="name-column"><%= item.name %></span> <span class="money-column"><%= item.money %></span> </div> <div class="item-menu"> <form action="/delete/<%= item.id %>" method="post"> <input type="submit" value="削除"> </form> <a href="# <%= item.id %>">編集</a> </div> </li> <% }); %> </ul> <div class="sum"> <h3>合計</h3> </div> </div> </div> </body> </html>
試したこと
const sumMoney = function(){connection.query(
'select sum(money) from users',
(error,results) => {
console.log(results);
res.render({sums:results});
});};
上記で関数にしてしまって、app.get('/index',(req, res) => の中に入れ込んだり、
いろいろ試しましたが上手くいかず、一つのルーティングの中で複数のクエリを実行してビューファイルに渡すことができませんでした。
いいj方法があればご教授いただきたいです。。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/16 11:37
2020/05/16 11:49
2020/05/16 12:04 編集
2020/05/16 12:49
2020/05/16 13:37
2020/05/16 14:26
2020/05/16 14:51