こなさんち

しがないメンヘラエンジニアの日記。

moment を用いたタイムゾーンの変更

表題に関してはぐぐればいくらでも出てきます。

qiita.com

主にここを参考にしました。

ただ闇雲に moment-timezone をimportしただけだと tz ってプロパティがないだの、 setDefaultって関数がないだのエラーを吐かれました。

落ち着いたかたちが

import * as moment from "moment-timezone";
require('moment-timezone')
moment.tz.setDefault('Asia/Tokyo');

axiosでのエラーハンドリング

これはaxiosに限らずajaxでも同じだけど、

例えば

axios.get('http://localhost:3001/users')

    .then(response => {
        console.log('status:', response.status); // 200
        console.log('body:', response.data);     // response body.

    }).catch(err => {
        console.log('err:', err);
    });

とGet通信した場合にその引数の中身がなんじゃろと思ってたんですよね。Promiseで返ってくればdataってプロパティはありますが そんな事を知らない当時の私。

axiosの場合だけかな?thenの引数は

.then(function(response) {
    console.log(response.data);        // レスポンスデータ
    console.log(response.status);      // ステータスコード
    console.log(response.statusText);  // ステータステキスト
    console.log(response.headers);     // レスポンスヘッダ
    console.log(response.config);      // コンフィグ
  });

と書けて、catchの引数は

.catch(function (error) {
    if (error.response) {
        // The request was made and the server responded with a status code
        // that falls out of the range of 2xx
        console.log(error.response.data);
        console.log(error.response.status);      // 例:400
        console.log(error.response.statusText);  // Bad Request
        console.log(error.response.headers);
    } else if (error.request) {
        // The request was made but no response was received
        // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
        // http.ClientRequest in node.js
        console.log(error.request);
    } else {
        // Something happened in setting up the request that triggered an Error
        console.log('Error', error.message);
    }
    console.log(error.config);

と書ける。そんなメモ。

Nuxtのディレクトリ構造、nuxt.config.js、SSLについて

備忘録のようなメモ。

前提

@ は、ソースのルートディレクトリを指す。

参考

最初の最初で私がハンズオンとして参考にした動画は

www.youtube.com

ディレクトリ構造

公式サイト

@

├ assets:静的ファイルの場所。画像ファイルとかもここなのか?いや、このご時世s3などがデフォなのかもしれない。

├ components:ページとは違い、ページの中の一部品をコンポーネントとしてここに入れていく。

├ layouts:レイアウトというだけあって、全ファイルの共通な部分を設定していく。

├ middleware:サーバサイドのフレームワークを触ったことがある人ならわかるかもしれないが、要は、各ページに移動する前に何かしらの処理(見せていい・悪い)を設定するところ。ログインした人の認可など。

├ pages:ここにページを入れていく。ルーティングも兼ねているため便利。

├ plugins:全ページで共通の関数などの定義と言う認識。使い方のリンクは↓ qiita.com

├ static:前述のassetsとの違いは今の所未把握。ただ、デフォルトでfaviconが入っていることを考えるとこちらがデフォなのかもしれない。

└ store:状態を保持するためのjsファイル置き場。それこそ、今ログインしているか否か、などである。

SSLについて

qiita.com

qiita.com

blog.ryou103.com

qiita.com

内容

今回AdminLTE3を用いるに当たって

npm i admin-lte@^3.0 --save

からが長かった。

まず、nuxt.config.jscss プロパティにheadに入れるcssを設定していくんだ。

最初はどこに入れりゃ良いのかもわからんな。

css: [
    '@/assets/css/main.scss',
    // AdminLTE
    '@/node_modules/admin-lte/plugins/fontawesome-free/css/all.min.css',
  ],

あと、AdminLTEはjQueryが必要なので、

npm i jquery@3.5.1 --save

で入れた後

build: {
    vendor: ['jquery', 'admin-lte'],
    plugins: [
      new webpack.ProvidePlugin({
        jQuery: 'jquery',
        $: 'jquery'
      })
    ]
  },

をconfig.jsに入れていくんだがこれがまた大変だった。

PyGameが動くまで / Pythonのコーディングメモ

概要

python3をWindowsに入れてPyGameを試した。 exeも作った。

Python DL

www.python.org

VSCode

フォーマッタを使ったらエラー。

pylintを使用した場合エラーが起きた場合の対処。

blog.qs-grct.com

qiita.com

どうもおすすめは ~/.pylintrc を作って設定を書くことのようだ。

qiita.com

PyGame

そもそものインストール

qiita.com

配布用にexeを作るよ。

web.plus-idea.net

これは、VSCode上でなく、コマンドプロンプトや、PowerShellでやるのが良さそう。

というか、VSCodeではコマンドは叩けても反応なく、PSでやったところうまく行った。

Nortonが邪魔を。

上記でexeを作ろうとコマンド叩いていたら、誤検出された。

www.wareko.jp

Python

Pythonのコーディング規約

qiita.com

pep8-ja.readthedocs.io

課題

exeのコンソール消せたはずだが消せない。