簡易掲示板を作りたい、node.js+expressで ⑦色々

スポンサーリンク
スポンサーリンク

色々

思いついたことを色々やっていく。

スポンサーリンク

Helmetを使う

実稼働環境における Express のセキュリティーに関するベスト・プラクティス

expressで推奨されてた。

 $ npm install --save helmet

インストールして追記

var helmet = require('helmet')
app.use(helmet())

効果はよく分からない。

Express×Helmetでウェブセキュリティを学ぶ - Qiita
この記事は エニプラ Advent Calendar 2020 の 11 日目の記事です。はじめにExpress 公式の『実稼働環境における Express のセキュリティーに関するベスト・プラ…

とか参照。

スポンサーリンク

Javascriptでhtmlspecialchars

PHP使ったときなんかこんなのあったよなーと思って探してみたら、javascriptではないらしい。なので自分で関数作って対応するそうな。ちょうどStackoverflowに同様の質問があった。

What is the HtmlSpecialChars equivalent in JavaScript?
Apparently, this is harder to find than I thought it would be. And it even is so simple... Is there a function equivalen...
function escapeHtml(text) {
  return text
      .replace(/&/g, "&")
      .replace(/</g, "<")
      .replace(/>/g, ">")
      .replace(/"/g, """)
      .replace(/'/g, "'");
}

replaceで一個ずつ置き換えてく。

スポンサーリンク

入力文字数チェック

未入力だの、長いやつを弾く。

if (req.body['user_message'] === '') {
      res.status(400).send('ないようがないよう')
      return;
    }

    if (req.body['user_message'].length > 400) {
      res.status(400).send('ないようがながいよう')
      return;
    }

    if (req.body['user_name'].length > 20) {
      res.status(400).send('なまえがながいよう')
      return;
    }

長さ見てるだけだね。

スポンサーリンク

新しい投稿が上に来るようにする

data.reverse();

こんな簡単なのだな。ただ編集→更新したやつは上に来ない。

スポンサーリンク

日時をGMTにする、形式を変える

Intl.DateTimeFormat() コンストラクター - JavaScript | MDN
Intl.DateTimeFormat() コンストラクターは、言語に応じた日付と時刻の書式化を可能にする Intl.DateTimeFormat オブジェクトを生成します。

こちらに書いてあることを読み解きつつ

function fmtdate(){
  let o = new Intl.DateTimeFormat('jp-JP', {
    weekday: 'narrow',
    year: 'numeric',
    month: '2-digit',
    day: '2-digit',
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit',
    fractionalSecondDigits: 3
  })

  return o.format(new Date())
}

こんな関数を作った。今まで

2022-01-02T11:50:36.446Z

こんな表示でUTCだったのが

2022/01/02(日) 20:51:07.812

こんな表示でGMTになった。

スポンサーリンク

とりあえず終わり

こんなところかなぁ。あと最終のソース。

コメント

タイトルとURLをコピーしました