nodejsウェブアプリケーション開発_2021

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
nodejsウェブアプリケーション開発_2021 [2021/05/31 11:27] – [Day 10 (2021/6/16)] suikounodejsウェブアプリケーション開発_2021 [2021/06/17 02:27] (現在) – [最終課題] suikou
行 119: 行 119:
  
 https://www.sejuku.net/blog/28449 https://www.sejuku.net/blog/28449
 +
 +練習1:/testにアクセスしたら、"Express"ではなくて、"Test2"というタイトルが表示されるように変更する。
 +
 +練習2:Expressの文字をサーバの現在時刻に変更する。
 +
  
 ## Day 8 (2021/6/9) ## Day 8 (2021/6/9)
行 131: 行 136:
  
 English:https://www.sitepoint.com/a-beginners-guide-to-pug/ English:https://www.sitepoint.com/a-beginners-guide-to-pug/
 +
 +課題:[[https://www.w3.org/People/mimasa/test/|このページ]]を再現するようにPUG+JSを書いてみる。
 +
 +1.上記ページの下記の4項目程度を再現するようにPUGを書いてみる。(リンクも再現すること。)
 +
 +```
 +・Object test (not actively maintained)
 +・Object test - results
 +・Java applet test (not actively maintained)
 +・Java applet test - results
 +```
 +
 +2.index.jsのほうで、下記のように配列を定義して1項目「・Object test (not actively maintained)」がリンク付きで出力されるPUGを書く。
 +
 +```
 +router.get('/', function(req, res, next) {
 +  let data = ["object/", "Object test", "(not actively maintained)"];
 +  res.render('index', { title: 'Express', data: data });
 +});
 +```
 +
 +3.JSのほうで、下記のようにulのIDごとにリンク先のURL、リンクの本文、リンクの後ろの文字列、を入れた連想配列を作成し、その配列を受け取ってeach文で展開するPUGを書く。
 +
 +```
 +  let data = {object:[
 +               ["object/", "Object test", "(not actively maintained)"],
 +               ["object/results", "Object test - results", ""]
 +              ],
 +              java:[
 +               ["object/java/", "Java applet test", "(not actively maintained)"],
 +               ["object/java/results", "Java applet test - results", ""]
 +              ]};
 +```
 +
  
 ## Day 9 (2021/6/14) ## Day 9 (2021/6/14)
  
 ・クライアントのHTMLフォームから、サーバのNodeJSにデータを渡す ・クライアントのHTMLフォームから、サーバのNodeJSにデータを渡す
 +
 +https://developer.mozilla.org/ja/docs/Learn/Forms/Sending_and_retrieving_form_data
  
 日本語: 日本語:
行 140: 行 181:
 https://qiita.com/Yuuma-ujimoto/items/bc55ecddf4d0302b2992 https://qiita.com/Yuuma-ujimoto/items/bc55ecddf4d0302b2992
  
-English:+https://qiita.com/TakeshiNickOsanai/items/b1720dcbe2bb5f9e524f
  
 +English:
 http://www.w3big.com/nodejs/nodejs-express-framework.html http://www.w3big.com/nodejs/nodejs-express-framework.html
 +
 +課題
 +
 +1.フォームの値をGETメソッドで受け取れていることを、console.logで確認する
 +
 +2.受け取った値をindex.pugに渡して、ブラウザの画面上のどこかに表示する
 +
 +3.GETからPOSTに変更しても、クライアントからデータを正しく受け取って、ブラウザ画面上のどこかに表示する
 +
  
 ## Day 10 (2021/6/16) ## Day 10 (2021/6/16)
行 149: 行 200:
  
 日本語: 日本語:
 +
 +https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions
 +
 +https://www.javadrive.jp/javascript/function/index16.html#section2
  
 https://tkybpp.hatenablog.com/entry/2016/04/25/163246 https://tkybpp.hatenablog.com/entry/2016/04/25/163246
行 160: 行 215:
 https://stackoverflow.com/questions/46482424/how-to-get-textual-stdout-from-console-logrequirechild-process-execsyncls https://stackoverflow.com/questions/46482424/how-to-get-textual-stdout-from-console-logrequirechild-process-execsyncls
  
 +課題
 +
 +1.Expressの実行フォルダの中に適当なファイルを作り、そのファイル名をNodeJSのfsを使って表示する。
 +
 +2.上記ファイルをNodeJSのfsを使って消す。
 +
 +
 +## 最終課題
 +
 +必須要件1:expressで動作するWEBアプリケーションを作成し、「http://localhost:3000/list/」にアクセスすると、サーバ上の特定のフォルダ(例:/opt/blast/dbとか、C:\opt\blast\dbとか)の中にある、ファイルの一覧を表示する。ファイルのリストの左横にはチェックボックス、ページ上部か下部に「削除」ボタンを表示し、「削除」ボタンを押すと、選択したチェックボックスのファイルを削除する。
 +
 +必須要件2:「http://localhost:3000/upload/」にアクセスすると、FASTAファイルをアップロードして、BLASTDBを作成するページを作成する。例:http://suikou.fs.a.u-tokyo.ac.jp/upload_sequenceserver/ 。
 +BLASTDBの作成は、FASTAが塩基配列であれば、「```C:\\Users\\xxx\\Downloads\\makeblastdb -in input.fasta -dbtype nucl -hash_index -parse_seqids```」、FASTAがアミノ酸配列であれば、「```/User/xxx/Download/makeblastdb -in input.fasta -dbtype prot -hash_index -parse_seqids```」を使えばよい。ファイルのアップロードは次を参照。https://code-kitchen.dev/html/input-file/ BLASTのダウンロードは「https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/」から。
 +
 +下記のオプションの内、2つ以上を実装すること。
 +
 +1.表示するのをファイル一覧ではなく、BLAST DBのファイルのプレフィックス(nr.palとかだと、nrだけ)にして、選択されたDBのファイルたちを全部消す(nrが選ばれると、nr.pal, nr.pdb, nr.pos, nr.pot, nr.ptf, nr.ptoなどをまとめて消す)。
 +
 +2.makeblastdbのコマンドがエラーになったときは、分かりやすいエラーメッセージを表示する。(例えば、FASTA以外のファイルが入力された時にmakeblastdbがエラー終了するときなど。)
 +
 +3.URLがhttp://localhost:3000/以外になっても対応できるように、またapacheなどのWEBサーバの下でnodejs-expressを動かすときのために、相対パスでpug, jsを記述する。
 +
 +4.CSSを使って、見栄えを良くする。
 +
 +5.BLASTDBファイルを削除するのか、リネームするのか選べるようにする。(リネーム機能には何が必要か考えて実装してみる。)
 +
 +6.アップロードされるファイルの拡張子の種類を.fasta, .faと.fasta.gz, .fa.gzに限定し、.fasta.gz, .fa.gzの時はnodejsのzlibライブラリを使って解凍しておく。
 +
 +参考:https://webbibouroku.com/Blog/Article/html5-file-accept
 +
 +https://www.yoheim.net/blog.php?q=20141002
  
  • nodejsウェブアプリケーション開発_2021.1622460454.txt.gz
  • 最終更新: 2021/05/31 11:27
  • by suikou