Node.jsで作成した機能は全部で7つある。
主に以下のyoutubeと書籍を参考にして作成した機能である。
プログラミング教室 Kikuチャンネル
「Node.js入門」
14 本の動画9,784 回視聴最終更新日: 2021/08/19
https://www.youtube.com/playlist?list=PLuFXsKgHUy2VLKAIAY3gbA1rDXf-D8VQD
「Node.js +SQlite3」
6 本の動画425 回視聴最終更新日: 2022/01/13
https://www.youtube.com/playlist?list=PLuFXsKgHUy2V0uE_d_E5NGTFrXagN4G-Q
Node.js超入門[第3版] (単行本)
著者 掌田 津耶乃 著
ジャンル IT系書籍 > プログラミング言語
書店発売日 2020/07/18
ISBN 9784798062433
判型・ページ数 B5変・468ページ
定価 3520円
(本体3200円+税10%)
その他 ダウンロード:有
https://www.shuwasystem.co.jp/book/9784798062433.html
1,htmlファイル(ejsファイルに変数を入れる)
使用したコード
<%= title %>
JSファイル
router.get('/',(req, res, next) => {
var data = {
title:'hello!!'
};
res.render('hello', data);
});
2,POST処理でデータを受け取る。
<form method="post" action="/hello/post">
<label for ="msg">Message</label>
<input type="text" name="message" id="msg">
<input type="submit" value="送信">
/helloでpost処理を入力フォームを作成する。
router.post('/post',(req,res,next) => {
var msg =req.body['message'];
req.session.message = msg;
var data = {
content: 'あなたは'+ msg + '送りました'
};
jsファイルでは、name=messageに入力された内容が送信されて、<%=content%>の部分に入れ込むことができるようになった。
3,googleニュースの取得
<%if (content != null) { %>
<ol>
<% for(var i in content) { %>
<% var obj = content[i]; %>
<li>
<a href="<%=obj.link %>">
<%= obj.title %>
</a>
</li>
<%} %>
</ol>
<% }%>
<%contentの中には>result.rss.channel[0].itemの中に文字列のデータが20個くらいあるので、for文で回して一つ一つ表示させている。
router.get('/',(req, res, next) => {
var opt = {
host:'news.google.com',
port: 443,
path: '/rss?hl=ja&ie=UTF-8&oe=UTF-8&gl=JP&ceid=JP:ja'
};
http.get(opt,(res2) => {
var body =''
res2.on('data',(data)=> {
body += data;
});
res2.on('end',() => {
parseString(body.trim(),(err,result) => {
console.log(result);
var data = {
title:'google news2',
content: result.rss.channel[0].item
};
res.render('hello', data);
})
})
})
});
http.getのメソッドを利用して、googlenewsのurlを読み込んで、その結果をDataオブジェクトの中に格納している。})が4つも続くように入れ子がかなりややこしくなり始める。
続きの記事