【Go】メモファイルを作成する簡単アプリケーションの作成

Go言語を使ってメモアプリを作ってみる

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

【新品】【本】スターティングGo言語 松尾愛賀/著
価格:3278円(税込、送料別) (2020/6/5時点)

以下のサイトを参考に作成をさせていただきました。

Go言語で作るメモ帳サーバー !

基本コード

標準パッケージのインポート

Go言語のソースファイルはパッケージという単位でグルーピングされ、各パッケージには1つ以上のソースファイルが所属しています。詳しくはまた別の機会に説明を加えたいと思いますが、Go言語ではこのパッケージと呼ばれるものが標準でたくさん備わっています。パッケージを使う際は以下のように記載します。

今回利用したパッケージは以下のものです。

パッケージ名 説明
fmt C言語のprintfやscanfと同じようなI/Oフォーマット機能が実装されています。
html HTMLテキストのエスケープとアンエスケープ用の関数が提供されています。
io/ioutil 入出力処理をサポートする機能がまとめられたパッケージです。
net/http HTTPクライアント/サーバー機能がまとめられたパッケージです。

保存するメモファイル

ここでは定数を宣言してメモファイルの保存先を設定しています。定数を宣言する際はconstを使い以下のように記述します。

メイン処理

ここではWebサーバーを起動し、リクエストURLのパス毎に呼び出すファンクションを変えています。『/』ではreadHandlerを呼び出し『/w』でwriteHandlerを呼び出しています。

http.HandleFunc関数

HandleFunc関数の第1引数にはURLのパスを、第2引数にはそのパスに対して実行される関数を指定しています。簡単に説明するとURLと関数の関連付けを行ってくれています。

http.ListenAndServe関数

ListenAndServeは、ポート番号(string型)とハンドラ(Handler型)の引数を取ります。この2つの引数をもとにWebサーバが起動し、リクエスト受付状態になります。

データファイルを読み込んだ上で、HTMLを生成

ioutil.Readfileを使い、定数で指定したメモファイルを読み込みます。その結果、読み込むべきファイルがない場合は、nilとなりデフォルトの入力値が表示されます。

また、html.EscapeStringを使い入力フォームに入力された文字をエスケープしておきます。これはセキュリティ上最低限必要な対策になります。

POSTデータを読み込みデータファイルを作成する

Postされたフォームデータをr.ParseFormを使って取得します。フォームデータの中でテキストエリアに入力された値の長さをlen関数を用いて数え、値がない場合は『フォームから投稿してください』のメッセージを返します。

値がある場合は、ioutil.WriteFileをつかってファイルを書き込みます。各パラメータについてはまたご紹介したいと思いますので、今回は省略します。ファイルを書き込んだら、最後はhttp.Redirectでルートパスにリダイレクトし、readHandlerが実行され、書き込んだ内容が画面に表示されます。

 まとめ

post情報をもとにファイル生成ができるのであれば、管理者だけがアクセスできるサイトを作って、そこで設定情報なんかを書き換えることができるページを作るのもありだなーと感じた。

 

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

【新品】【本】スターティングGo言語 松尾愛賀/著
価格:3278円(税込、送料別) (2020/6/5時点)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です