javascript クリップボードコピーはawaitした方が確実
題名通りです。
await navigator.clipboard.writeText('コピーさせたいテキスト');
参考
クリップボードにテキストをコピーさせる機能を作った時、Document is not focusedになったら確認したいこと #JavaScript - Qiita
Linuxで特定のユーザーとしてコマンドを実行する
fooユーザーとしてlsを実行する
sudo -u foo ls
nuxt3 + vuetifyの簡単インストール
結論
nuxt3をインストールした後
yarn add -D vuetify-nuxt-module
する。
yarn add @mdi/font
をしてもいいとのこと。
あとは、nuxt.config.ts を編集するだけでOK。
export default defineNuxtConfig({
devtools: { enabled: true },
modules: [
'vuetify-nuxt-module'
],
}
引用元
Nuxt3 で Vuetify3 + SASS/SCSS を使う (vuetify-nuxt-module 使用) #Nuxt - Qiita
dockerで一部のサブディレクトリだけvolumesの範囲から除外したい
概要(結論)
空のnamed volumesで除外したいサブディレクトリを上書きすればよい
version: "3.9"
services:
frontend:
build: ./xserver
ports:
- 3000:3000
volumes:
- ./xserver:/app
- dummy-volumes:/app/node_modules # node_modules はホストPCと共用しない(すると動かない)
environment:
- HOST=0.0.0.0
- port=3000
tty: true
working_dir: /app
entrypoint: yarn dev -o
volumes:
dummy-volumes: # ダミー用volume
上記の例でいいますと、
ホストPC側には、./xserver/node_modules が存在し、
volumes で、./xserverをコンテナの/appに紐づけちゃうと、/app/node_modulesがホストPCの./xserver/node_modulesと同じ内容になってしまう状態です。
それを避けたいため、
dummy-volumesという空のnamed volumesを作成し、それをコンテナ内の/app/node_modules に設定することで、ホストの./xserver/node_modulesだけはコンテナに紐づかないので、コンテナの/app/node_modulesがコンテナで作成した内容になります。(ホストの内容で上書きされずに済みます)
参考
phpのPDOで、 postgresqlのjsonb演算子(?)を使いたい場合
概要
php(PDO) + postgresql の生SQLを実行時に
Invalid parameter number: mixed named and positional parameters
が発生。
原因、postgresqlのjsonbの演算子などではよく「?」を使うことがあるが、これと、phpのPDOのプリペアドステートメントの「?」(疑問符パラメータ)と勘違いされてエラー
例) foo_table.bar ? 'fuga_colum_name' といったpostgrsqlのjsonbの演算子(fuga_colum_nameというキーがbarカラムの中に存在するかを調べる)
解決方法
php(PDO)に渡すSQL文に「?」を使いたい場合は、「??」というふうにすれば使える。
PHP 7.4.0 以降では、クエスチョンマークを2回続けることで、 クエスチョンマークそのものをエスケープすることができます。 これは、?? という文字列が、 クエリをデータベースに送信する時に ? に変換されるということです。
参考文献
postgresql 中身が配列になっているjsonb型の検索
前提
[ { "foo": "foo内容1", "bar": "bar内容1", "kore": "kore1" }, { "foo": "foo内容2", "bar": "bar内容2" }, { "foo": "foo内容3", "bar": "bar内容3" } ]
上記のように、配列の中にさらにjsonが入っているタイプのデータがjsonbカラムに入っていた場合。
したいこと
"kore":"kore1"というデータが存在する行だけ取得したい("kore":"kore1"を含まないデータは除外したい)
SELECT * FROM target_table t WHERE t.target_column @> '[{"kore":"kore1"}]'
でOKのようです。ポイントは[]配列の中に、存在を確認したいキーと値の組み合わせを入れるという…。これでいちおう配列jsonの格納されたjsonbタイプのデータで、含まれているものだけが抽出されました。
(直観的ではないですが…)
以下のようなカラムを持つ行は取得されません。 - "kore"キーを持つjsonデータがない
[ { "foo": "foo内容1", "bar": "bar内容1", }, { "foo": "foo内容2", "bar": "bar内容2" }, { "foo": "foo内容3", "bar": "bar内容3" } ]
- "kore"キーの値が"kore1"ではない
[ { "foo": "foo内容1", "bar": "bar内容1", }, { "foo": "foo内容2", "bar": "bar内容2", "kore": "kore999" }, { "foo": "foo内容3", "bar": "bar内容3" } ]