[MYSQL]Webアプリケーションの作成-記事の詳細
NodejsとMySqlで簡単なWebアプリケーションを作成しています.前回のリリースでは、データベース内のid値に対応する記事のリストをリストし、id値がない場合、つまりメイン画面にウェルカムメッセージを挿入しました.ただし、リスト項目を動的にクリックした場合、その詳細を出力する機能はまだ実装されていません.そこで、今日実施します.
(JavaScriptをクリックすると、アドレス値はtopic/1になります.)
したがって,id値をパラメータとして取得することが重要である.
次にid値がある場合は詳細ビューを出力し、ない場合はviewを画面に表示します.また、詳細ビューはSQLクエリ文で表示されます.以上を実現するコードは以下の通りである.
また,照会
コールバック関数のパラメータは
今アプリケーションを実行すると...
記事ディレクトリをクリックするたびに、対応する詳細な説明が出力されます.
app_mysql.js
は、トピックのid値に基づいて詳細を出力する.app.get(['/topic', '/topic/:id'], function(req, res) { ... }
この部分をもう一度見てみましょう.app_mysql.js
app.get(['/topic', '/topic/:id'], function(req, res){
var sql = 'SELECT id, title FROM topic';
conn.query(sql, function(err, topics, fields) {
var id = req.params.id;
res.render('view', {topics:topics});
});
リストの項目をクリックすると、topicの後ろにid値が付きます. (JavaScriptをクリックすると、アドレス値はtopic/1になります.)
したがって,id値をパラメータとして取得することが重要である.
var id = req.params.id;
を追加します.次にid値がある場合は詳細ビューを出力し、ない場合はviewを画面に表示します.また、詳細ビューはSQLクエリ文で表示されます.以上を実現するコードは以下の通りである.
app_mysql.js
app.get(['/topic', '/topic/:id'], function(req, res){
var sql = 'SELECT id, title FROM topic';
conn.query(sql, function(err, topics, fields) {
var id = req.params.id;
if(id){
var sql = 'SELECT * FROM topic WHERE id=?';
conn.query(sql, [id], function(err, topic, fields){
});
} else {
res.render('view', {topics:topics});
}
});
conn.query
でsqlに接続し、if-else
文で詳細ビューを出力するかどうかを区別します.また,照会
'SELECT * FROM topic WHERE id=?';
により,患者id=?価格に応じて、conn.query(sql, [id], function(err, topic, fields)
ゲートからDBに照会を送信するように行われる.コールバック関数のパラメータは
err
なので、通信エラーが発生した場合の異常処理をコンソールに出力し、ユーザーに「内部サーバエラー」を送信するには、次のようにエンコードします. if(err) {
console.log(err);
res.status(500).send('Internal Server Error');
} else {
res.render('view', {topics:topics, topic:topic[0]});
}
以上のすべてのコンテンツは、以下のようにコードで実装されています.app_mysql.js
app.get(['/topic', '/topic/:id'], function(req, res){
var sql = 'SELECT id, title FROM topic';
conn.query(sql, function(err, topics, fields) {
var id = req.params.id;
if(id){
var sql = 'SELECT * FROM topic WHERE id=?';
conn.query(sql, [id], function(err, topic, fields){
if(err) {
console.log(err);
res.status(500).send('Internal Server Error');
} else {
res.render('view', {topics:topics, topic:topic[0]});
}
});
} else {
res.render('view', {topics:topics});
}
});
今、view
に触れる時だ.view.pug
article
if topic
h2= topic.title
= topic.description
div= 'by '+topic.author
else
h2 Welcome
| This is server side javascript tutorials.
上記のトピックのプロパティ値(titleとdescription)を追加することで、タイトルとその説明を出力できます.また,著者情報をDBに入力した.これらの情報をdivラベルの下に出力させます.今アプリケーションを実行すると...
記事ディレクトリをクリックするたびに、対応する詳細な説明が出力されます.
Reference
この問題について([MYSQL]Webアプリケーションの作成-記事の詳細), 我々は、より多くの情報をここで見つけました https://velog.io/@kjh950330/MYSQL-웹-앱-제작하기-글-상세보기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol