初めて投稿します。
現在、node.jsのexpressを使って習得を行っており、
MySQLにあるデータのグラフ表示をしようとしています。
ところが、通常であればDBサーバーのConnectionは
接続した後処理で切断、解放するのが今までの
流れだったように思いますが、
このnode.jsだとejsのhtmlが表示されるまで
接続し続けているように思われます。
そこで質問なのですが、
1.このnode.jsではこれで正常なのか(接続、切断は不要でよいのか)
2.もし切断が必要であるならば、どの段階でdestroy(Poolのrelease等)をすればよいか。
3.切断後の再起の記述方法はあるのか。
ちなみにresponse.renderの直後にcon.destroy()を追加して実行すると
1回目はブラウザに表示されますが、再度表示しようとすると
コネクションエラーになります。
nodejs
1--<app.js>-- 2 const port = 3000 3 const ejs = require('ejs'); 4 const express = require('express'); 5 const app = express(); 6 7 app.set('ejs', ejs.renderFile); 8 const con = mysql.createConnection({ 9 host: 'localhost', 10 user: 'root', 11 password: '', 12 database: 'test' 13 }); 14 15 con.connect(function(err) { 16 if (err) throw err; 17 console.log('Connected'); 18 }); 19 20 app.get('/',(request, response) => { 21 const sql = "select name from t_test" 22 con.query(sql, function(err, result, fields){ 23 if (err) throw err; 24 response.render('index.ejs',{ content: result }); 25 // ここでcon.destroy()とやった 26 }); 27 }); 28 29 app.listen(port,() => { 30 console.log('server start'); 31 });
~実行すると、ejsの接続を待っている~
html
1--<index.ejs>-- 2 ~前略~ 3 <table> 4 <% for(let i in content) { %> 5 <tr> 6 <% let obj = content[i]; %> 7 <td> 8 <%= obj.name %> 9 </td> 10 </tr> 11 <% } %> 12 </table> 13 ~後略~
いろいろとネットで調べてみましたが、
回答となるような記述が見つかりませんでした。
どうそよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/21 08:51
2020/12/21 08:59
2020/12/21 09:01
2020/12/22 01:50