やろうとしていること
フロントエンドにNuxt.js、バックエンドにExpress(Node.js)を用いたWebアプリを開発中です。Nuxt.jsのページからAxiosを使ってExpressにデータを送信したいのですが、うまくいかないです。
コード
フォーム(index.vue)
vue
1<template> 2 <div class="hello"> 3 <form action> 4 <input type="text" placeholder="text" v-model="text" /> 5 <input type="submit" value="decide" @click="submitClick" /> 6 </form> 7 </div> 8</template>
script(index.vue)
vue
1<script> 2export default { 3 data() { 4 return { 5 text: null, 6 }; 7 }, 8 methods: { 9 submitClick: async function () { 10 await this.$axios.$post("/api", { foo: this.text }); 11 // alert(this.text); 12 }, 13 }, 14}; 15</script>
Express側の処理
js
1const express = require('express') 2const app = express() 3const db = require('../models/index') 4app.get('/', (req, res) => { 5 // 省略 6}) 7app.post('/', (req, res) => { 8 db.sequelize.sync().then(() => db.Reflection.create({ 9 sentence: req.body.foo 10 })) 11}) 12module.exports = { 13 path: '/api', 14 handler: app 15} 16
現在できていること
- $axios.$postメソッドは反応しています。db.reflection.create()のsentenceを適当な文字列にすれば、フォームを送信した時点で、データがちゃんと作成されます。
- ただ、値の受け渡しが上手く行っていない状態で以下のようなエラーが出ます。
ERROR Cannot read property 'foo' of undefined at api\index.js:11:24
何度調べても分からないので、どなたか分かる方がいれば教えていただけると幸いです。
参考ページ
@nuxt/axiosでCRUDする時のアクセス方法とデータの受け取り方【Nuxt + Express】
Nuxt.jsでaxiosの使い方と設定方法を紹介
【Nuxt.js】非同期するなら、$axiosでしょ
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/27 02:54
2021/06/27 03:58