質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

2440閲覧

Nuxt.jsでファイルの有無を調べる方法

takochan1192

総合スコア100

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/08/05 02:19

Nuxt.jsでファイルの有無を調べるために、node.jsのfs.existsSyncというメソッドがあることを知り、
下記のようなコードで作成し、動作確認を行いました。
UIフレームワークとしてVuetify.jsを使用しています。

vue

1<template> 2 <div> 3 <v-btn @click="test">fileCheck 4 </v-btn> 5 </div> 6</template> 7<script lang="ts"> 8import {Component, Vue} from 'nuxt-property-decorator' 9const fs = require('fs') 10 11@Component({}) 12export default class extends Vue { 13 test() { 14 const url = './static/test.png' 15 if (fs.existsSync(url)) { 16 alert('exist!') 17 } else { 18 alert('Not exist!') 19 } 20 } 21} 22</script>

コードは、ボタンをクリックして、ファイルの有無をアラートで表示するという簡単なものです。
このコードを実行したところ、下記のようにfs.existsSyncは関数ではないというエラーとなりました。

client.js?06a0:97 TypeError: fs.existsSync is not a function

使用方法に誤りがあるのでしょうか?
どなたか詳しい方ご教示いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/08/05 02:41 編集

ブラウザで動く JavaScript コードからは PC 上のファイルにはアクセスできません。 node.js の fs.existsSync などの関数は、サーバー側で動かすためのものです。
takochan1192

2021/08/05 02:52

ありがとうございます。そうだったのですね。 クライアント側で行うことを想定しておりました。 nuxtのプロジェクトの中にstaticというディレクトリがあり、その中に当該のファイルが存在するか否かというのを判定する必要があり、この質問を致しました。 webアプリをデプロイした(AWSのS3上を想定)後に、客先によって、pngデータ(ロゴ)を切り替える という処理が必要だったのです。pngデータが無い場合もありまして、その場合は、別なテキストデータを表示させるのですが、pngデータ参照でエラーになってしまいまして、なんとかファイルが存在するか否かを判定するメソッドが組めないかと思案しておりました。
takochan1192

2021/08/05 02:52

もし、何かよい方法がございましたら、ご教示いただけますと幸いです。
hoshi-takanori

2021/08/05 03:00

目的のファイルがデプロイ先のサーバーにあるなら、いちいちクライアントからファイルの有無を確認するのではなく、デプロイ時に設定すべきことでは。(というか、客先ごとに切り替えるべき内容って、ロゴだけで良いんですか?)
takochan1192

2021/08/05 03:08

デプロイ時に設定するということは、config.tsなどのファイルに設定を書けばよろしいのでしょうか。 客先ごとに切り替えるべき内容は、ロゴだけではないのですが、後の情報は、必ず入ってくる予定なのです。ロゴだけファイルが存在しないケースがあるため、非常に困っておりました。
hoshi-takanori

2021/08/05 03:21

すでに設定ファイルがあるなら、それにロゴの有無も書くようにするのが良いと思います。デプロイ時にスクリプトを動かしたりするなら、その時に設定内容と実際のファイルの有無をチェックできますし。 (ついでに、客先ごとにロゴのファイル名を変えると、同じファイル名で内容の違う画像と取り違えたりしなくていいかも。思いつきですが。)
takochan1192

2021/08/05 05:21

ありがとうございます。色々と検討してみます。
guest

回答1

0

上記のやりとりに関してです。

pngデータの切り替えはどのように行うのでしょうか??

投稿2021/08/05 02:56

art_porokyu

総合スコア44

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takochan1192

2021/08/05 03:02

test.pngというデータの参照先もファイル名称も変わらないのですが、ウェブアプリを使用する企業様毎に、企業様毎のロゴファイルが入ってきて変更されることになると聞いておりました。そのため、ファイルの切り替え自体はアプリのデプロイ後、AWSサーバー側で行われる予定です。
art_porokyu

2021/08/05 03:19

サービス内容についてなのですが、企業様毎に管理画面があるようなサービスでそこに設定するロゴファイルみたいなイメージでしょうか??
takochan1192

2021/08/05 03:26

管理画面は同じなのですが、企業様毎に設定するロゴが違うのです。ややこしくて大変な申し訳ないのですが、ロゴファイル名は同じなのですが、そのファイルに入るロゴは企業毎に異なりまして、さらにロゴがない企業様はファイル存在しないといった感じです。
takochan1192

2021/08/05 03:27

開発段階では、ファイルの参照だけいれておて、デプロイ後、サーバー側でファイルが入れられるという流れなのです。
art_porokyu

2021/08/05 03:44

事前にS3にロゴを入れておくのではダメなのでしょうか? 企業様毎にロゴファイルが入ってくるというのはどのような形で入ってくるのでしょうか? 企業様がロゴファイルをアップロードするという感じでしょうか? こちらの認識が違ってたら申し訳ないです。
takochan1192

2021/08/05 05:22

事前にロゴのファイルをもたせて置く形にしようかと思います。色々とアドバイスいただきましてありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問