カテゴリ: Nuxt.js

検索結果: 11件

article-thumbnail

Nuxt.jsでRSS(xmlファイル)を表示する方法

【概要】Nuxt.jsでRSSで使用されるxmlファイルを表示する方法についてまとめます。【詳細】・xmlファイルを設定する下記のようにstaticディレクトリ配下にxmlファイルを設置します。/NUXT_PROJECT/static/rss/index.xmlここでは「static」配下に「rss」ディレクトリを作成し、xmlファイルを配置しています。staticディレクトリ配下であれば任意のパスに設定できるので変更しても構いません。・表示確認を行う上記の例の通りにxmlファイルを配置した場合、ローカル環境であれば下記のURLで表示する事が可能です。http://localhost:3000/rss/index.xml無事XMLファイルが表示されれば成功です。

カテゴリ: Nuxt.js 2021-02-14 02:57:02
article-thumbnail

Nuxt.jsでzipファイルをアップロードする方法

【概要】Nuxt.jsでzipファイルをアップロードする方法についてまとめます。ここでの処理は下記の手順になります。1. フォームにzipファイルを設定し、送信する2. Node.jsで設定したAPIにzipファイルデータを送信する3. zipファイルデータを/static/zipに保存する【詳細】1. multerをインストールする。FormDataを処理する為にmulterを、ファイル操作する為にインストールします。npm i multer2. Nuxt.jsのソースi. Form部分lt;b-form @submit.prevent"uploadZip"lt;b-form-group label"upload" label-cols-sm"1" label-for"uploadZip"lt;b-form-file v-model"zipFiles" id"uploadZip" accept".zip" ref"file-input" browse-text"選択"multiple placeholder"ファイルを選択、もしくはドロップして下さい" size"lg"lt;/b-form-filelt;b-button v-if"zipFiles" @click"uploadZip()" variant"primary" class"mt-3 w-100"アップロードlt;/b-buttonlt;b-button v-if"zipFiles ! null" @click"clearFiles()" class"mt-3 w-100"Clearlt;/b-buttonlt;/b-form-grouplt;/b-formb-form-fileタグの「multiple」を設定する事で複数ファイルをフォームに設定し、アップロードする事ができます。もし、複数アップロードしない場合は「multiple」を設定する必要はありません。ii. export default部分export default {data() {return {zipFiles: null,}},methods: {async uploadZip() {for (let zipFile of this.zipFiles) {let formData new FormData();formData.append('application/zip', zipFile);let config { headers: { 'content-type': 'multipart/form-data' } };await axios.post(process.env.BASE_URL + '/api/zip', formData, config).then(function(response) { console.log('response', response); }).catch(function(error) { console.log('error', error); })}},clearFiles() {this.zipFiles null;this.$refs['file-input'].reset();}},}3. Node.js(Express)のmulter部分ここでは/static/zipディレクトリに格納します。i. ランダムなファイル名の場合プログラムが作成するランダムな文字列のファイル名で保存されます。const multer require('multer');const upload multer({ dest: './static/zip/' });ii. ファイル名を指定する場合投稿したzipのファイル名で保存します。const multer require('multer');const multerStorage multer.diskStorage({destination (req, file, cb) {cb(null, './static/zip/');},filename (req, file, cb) {cb(null, file.originalname);}});const upload multer({ storage: multerStorage });4. Node.js(Express)のAPI部分APIに送信した際に保存されます。下記では送信されたfileの情報とformのbodyに格納値をlog出力しています。log出力が不要な場合は削除して下さい。router.post('/zip', upload.single('application/zip'), function(req, res) {console.log('req.file',req.file);console.log('req.body',req.body);res.send('upload success');});

カテゴリ: Nuxt.js 2020-11-23 22:19:20
article-thumbnail

Nuxt.jsでvue-selectを使用する

【概要】Nuxt.jsにvue-selectをインストールし、フォームのサジェスト機能を作成します。このvue-selectを使用する事でサジェストに存在する値のみ入力可能にする事も可能です。【詳細】1. vue-selectをインストールするnpm install vue-select2. Vueファイルに設定をするNuxt.jsのVueファイルに設定をします。・設定例lt;template lt;div lt;h1パン選択lt;/h1 lt;b-container fluid lt;b-form @submit"onSubmit" lt;b-form-group label"パン:" label-for"bread" class"text-left" lt;v-select id"bread" v-model"form.bread" :options"breadList" placeholder"パン" required / lt;/b-form lt;/b-container lt;/divlt;/templatelt;scriptimport vSelect from 'vue-select';import 'vue-select/dist/vue-select.css';export default { components: { vSelect }, data() { form: {bread: ''}, breadList: ['アンパン', 'カレーパン', 'メロンパン'], }},lt;/script・表示サンプルCf. タグ設定公式:Vue Select API Props以下のようなタグを設定したとします。lt;v-select id"bread" v-model"form.bread" :options"breadList" @input"changeBread" :clearable"false" required /上記のサンプルとは違う点は2つです。1. フォームの値が変更された時に実行するメソッド定義2. フォームの値を削除不可にする(常時いずれかの値が設定されている事)1は「@input」によって設定できます。2は「clearable"false"」によって設定できます。その他の設定に関しては下記の公式ページを参考にしてみて下さい。

カテゴリ: Nuxt.js 2020-10-24 00:37:31
article-thumbnail

Nuxt.jsでvue-cool-selectを使用してフォームのサジェスト機能を作成する

【概要】Nuxt.jsにvue-cool-selectをインストールし、フォームのサジェスト機能を作成します。【詳細】1. vue-cool-selectをインストールするnpm install --save vue-cool-select2. Vueファイルに設定をするNuxt.jsのVueファイルに設定をします。・設定例lt;template lt;div lt;h1パン選択lt;/h1 lt;b-container fluid lt;b-form @submit"onSubmit" lt;b-form-group label"パン:" label-for"bread" class"text-left" lt;cool-select id"bread" v-model"form.bread" :items"bread" :placeholder"form.bread" required / lt;/b-form-group lt;b-button type"submit" variant"primary" class"mt-2"Submitlt;/b-button lt;/b-form lt;/b-container lt;/divlt;/templatelt;scriptimport { CoolSelect } from "vue-cool-select";import("vue-cool-select/dist/themes/bootstrap.css");export default { components: { CoolSelect }, data() { form: {bread: ''}, bread: ['アンパン', 'カレーパン', 'メロンパン'], }},lt;/script・表示サンプル[設定概要]・サジェストリストdata部分で定義しているbreadの配列をcool-selectタグのitemsに渡す事でサジェストにパンのリストが表示されます。・vue-cool-selectをインポートimport { CoolSelect } from "vue-cool-select";import("vue-cool-select/dist/themes/bootstrap.css");ここではBootstrap Vueを使用している事を想定していますが、その他のCSSを使用している場合は下記をインポートする事でCSSが反映されます。import("vue-cool-select/dist/themes/material-design.css");・vue-cool-selectのComponentを設定するcomponents: { CoolSelect},

カテゴリ: Nuxt.js 2020-10-14 01:48:33
article-thumbnail

Nuxt.jsのmomentモジュールを使用して任意の日付フォーマットを出力する

【概要】Nuxt.jsで日付フォーマットを使用する方法と現在時刻の出力方法についてまとめています。【詳細】1. モジュールをインストールnpm install --save-dev @nuxtjs/moment2. nuxt.config.jsにmomentを使用する為の設定を記述するbuildModulesにmomentを追記し、moment部分をnuxt.config.jsの下部に作成します。・nuxt.config.jsの設定内容export default { ...省略... buildModules: [ // moment '@nuxtjs/moment', ], ...省略... // moment moment: { locales: ['ja'] }, ...省略...}3. Vueファイルでの読み出し・現在時刻の出力this.$moment().format('YYYY-MM-DD HH:mm:ss');・特定の時刻をフォーマットに合わせて出力引数に日時のデータを持たせます。すると、formatの形に合わせて出力されます。下記の例では「2020-08-14T11:00:00.000Z」を渡しており、期待される結果は「2020-08-14 20:00:00」になります。this.$moment('2020-08-14T11:00:00.000Z').format('YYYY-MM-DD HH:mm:ss');出力結果2020-08-14 20:00:00

カテゴリ: Nuxt.js 2020-10-07 23:47:07
article-thumbnail

Nuxt.jsでenv機能を設定する

【概要】 Nuxt.jsでenv機能を設定する方法についてまとめます。【詳細】1. dotenvモジュールをインストールするnpm i @nuxtjs/dotenv2. .envファイルを作成するプロジェクトのディレクトリ直下に.envファイルを作成します。例として下記を設定内容とします。API_KEY 'This is API_KEY'TEST 'テスト項目です。'※ 基本的にenvファイルに記述されている内容は外部に漏れてはいけない内容です。デフォルトで.gitignoreに.envが記述されている事が多いですが、必ず確認するようにしましょう。3. nuxt.config.jsに設定を行うここではAPI_KEYとTESTという定数名に対してenv設定を行います。export defaultの記述前にenvを読み込む設定を記述します。export defaultの内部にenv部分を作成し、読み込む定数名を記述します。env内容を追加する場合は定数部分(const)とexport defaultのenv部分にカンマ区切りで定数名を追加して下さい。require('dotenv').config();const { API_KEY, TEST } process.env;export default { ...省略... env: { API_KEY, TEST, }}4. vueファイルにて読み込み設定「process.env.定数名」でenvの設定を読み込めます。Nuxt.jsにAPIサーバーを構築した場合でも上記の記法で設定を読み込む事が可能です。試しにindex.vueにて読み込んでみます。・/pages/index.vuelt;scriptexport default { mounted() { console.log(process.env.API_KEY); console.log(process.env.TEST); }}lt;/script5. Nuxt.jsを起動して確認下記のコマンドでNuxt.jsを起動し、ブラウザのConsoleに.envに記述した内容が出力されれば成功です。・出力結果例This is API_KEYテスト項目です。

カテゴリ: Nuxt.js 2020-10-06 03:09:12
article-thumbnail

Nuxt.jsでFont Awesomeを使用する

【概要】Nuxt.jsのFont Awesomeのモジュールインストールから使用方法までをまとめています。【詳細】1. Font Awesomeを使用する為のモジュールをインストールする下記のコマンドでFont Awesomeのモジュールをインストールします。npm i nuxt-fontawesomenpm i @fortawesome/fontawesome-svg-core @fortawesome/vue-fontawesomenpm i @fortawesome/free-solid-svg-icons2. nuxt.config.jsにFont Awesomeを使用する為の設定をするmodule部分に追加するのとfontawesome部分を新規で記述する必要があります。詳細は下記になります。・nuxt.config.jsexport default { ...省略... modules: [ ...省略... // Font Awesome 'nuxt-fontawesome', ], ...省略... // Font Awesome configuration fontawesome: { imports: [{ set: '@fortawesome/free-solid-svg-icons', icons: ['fas'] }] },}3. Font Awesomeのアイコンを表示してみる今回は下記URLのcaret-upを使用してみます。Font Awesome: caret-upFont Awesomeで出力されているタグは下記になります。lt;i class"fas fa-caret-up"lt;/iNuxt.jsで使用する際にはVueファイルに下記のように記述します。lt;font-awesome-icon :icon"['fas', 'caret-up']" /ブラウザにてFont Awesomeのアイコンが表示されれば成功です。

カテゴリ: Nuxt.js 2020-10-05 23:46:48
article-thumbnail

pm2でNuxt.jsをデプロイする

【概要】pm2を使用してNuxt.jsプロジェクトをデプロイする方法についてまとめます。また、Nuxt.jsを更新した時のデプロイする方法もまとめいるので参考にしてみて下さい。【詳細】1. pm2インストールnpm install pm2 -gnpmとNode.jsをインストールしていない場合は下記のドキュメントを参考にして下さい。Amazon Linux 2にNode.jsとnpmをインストールする2. プロジェクトに移動し、npm install と build する先ず、Nuxt.jsのプロジェクトに移動します。cd Nuxt-APPNuxt.jsのプロジェクト直下で npm install と build します。npm installnpm run build3. pm2でプロジェクトをデプロイして、プロセスを保存する pm2 start npm -- startpm2 saveこれでデプロイし、かつサーバーを再起動した時にも自動でNuxt.jsが起動するようになります。ブラウザでNuxt.jsのプロジェクトが表示されたらデプロイ完了です。【参考:Nuxt.jsを更新した時の対応】1. Nuxt.jsのソースを最新状態にし、ビルド可能な状態にするGitからプロジェクトをpullします。cd Nuxt-APPgit pullnpm installnpm run build新規プラグイン等がなければ「npm install」は不要です。2. 現在実行中のpm2を停止するi. 対象のidを調査する現在実行中かつ、停止したいidをpm2のリストから調べます。pm2 list基本的には1つのプロジェクトが動いているかと思います。その場合のidは0になります。ii. 対象の実行しているpm2を停止するpm2 stop 0ここではidを「0」として記述していますが、対象のidが違う場合は置換して実行して下さい。3. pm2を再起動し、保存するpm2 start npm -- startpm2 saveブラウザでNuxt.jsのプロジェクトが表示されるか確認できれば完了です。

カテゴリ: Nuxt.js 2020-05-29 04:04:27
article-thumbnail

Nuxt.jsにGoogle Analyticsを設定する

【概要】Nuxt.jsにGoogle Analyticsを設定する方法をまとめます。【Google Analyticsの設定】下記のソースをpluginsディレクトリの中に作成して下さい。・Nuxt-APP/plugins/ga.js/* eslint-disable */export default ({ app }) {/*** クライアントサイドかつプロダクションモードでのみ実行*/if (process.env.NODE_ENV ! 'production') return/*** Google アナリティクスのスクリプトをインクルード*/(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']r;i[r]i[r]||function(){(i[r].qi[r].q||[]).push(arguments)},i[r].l1*new Date();as.createElement(o),ms.getElementsByTagName(o)[0];a.async1;a.srcg;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');/*** 現在のページをセット*/ga('create', 'lt;トラッキング ID', 'auto')/*** ルートが変更されるたびに毎回実行(初期化も実行される)*/app.router.afterEach((to, from) {/*** Google アナリティクスにページビューが追加されたことを伝える*/ga('set', 'page', to.fullPath)ga('send', 'pageview') })}※ 「lt;トラッキング ID」について下記の「lt;トラッキング ID」の文言はGoogle Analyticsの管理ページにあるプロパティ設定にあります。その値を代入して下さい。・Google Analyticsの「lt;トラッキング ID」表示画面個人情報は隠させてもらっていますが、赤枠を参考に遷移すればトラッキング ID があるページまで行けます。【nuxt.config.jsの設定】Nuxt-APP/nuxt.config.js のpluginsに下記の設定をして上記のga.jsを読み込みます。・Nuxt-APP/nuxt.config.js......plugins: [ { src: '~plugins/ga.js', mode: 'client' }],......これでサーバーにデプロイしたNuxt.jsにGoogle Analyticsを設定できます。

カテゴリ: Nuxt.js 2020-05-27 03:20:14
article-thumbnail

Nuxt.jsにhelmetを追加、設定する

【概要】Helmetはセキュリティー関連のHTTPヘッダーを設定する9個の小さなミドルウェア関数の集合です。これを設定する事でセキュリティーレベルが上がる為、設定しておく事をお勧めします。【Helmetのインストールと設定】1.Helmetインストールnpm i helmet2. 設定server/index.jsに設定します。const helmet require('helmet')......async function start () {app.use(helmet())}start()Cf. セキュリティレベルチェック下記のページでサイトのセキュリティチェックを行う事ができます。対応可否のポイントや改善ポイントに関してもわかるので、良かったら参考にしてみて下さい。Observatory by Mozilla

カテゴリ: Nuxt.js 2020-05-24 04:54:43