javascript - 如何将新用户添加到 db.json

标签 javascript rest vue.js vuejs2 components

我有 db.json,看起来像:

{
  "users": [
    {
      "id": 0,
      "isActive": true,
      "balance": "$2,309.20",
      "picture": "http://placehold.it/128x128",
      "age": 26,
      "accessLevel": "guest",
      "firstName": "Robin",
      "lastName": "Whitaker",
      "company": "REMOTION",
      "email": "robin.whitaker@remotion.com",
      "phone": "+7 (845) 419-3899",
      "address": "442 Hanson Place, Tonopah, Washington, 5118",
      "about": "Ut occaecat cillum esse eu Lorem sit dolore. Fugiat cillum occaecat ad consequat ex irure velit ullamco occaecat Lorem fugiat qui consectetur do. Proident sunt eu sint cupidatat quis. Fugiat ad sunt eu sint velit anim eiusmod commodo incididunt excepteur deserunt ex exercitation. Mollit sunt incididunt sint ut et.",
      "registered": "21.03.2016"
    },
    {
      "id": 1,
      "isActive": true,
      "balance": "$2,746.85",
      "picture": "http://placehold.it/128x128",
      "age": 22,
      "accessLevel": "guest",
      "firstName": "Richardson",
      "lastName": "Adkins",
      "company": "OCEANICA",
      "email": "richardson.adkins@oceanica.me",
      "phone": "+7 (902) 517-3328",
      "address": "117 Beverley Road, Maxville, South Dakota, 6701",
      "about": "Nulla nulla do cillum dolore commodo incididunt laborum labore laboris nisi cillum cillum do. Lorem exercitation nisi proident est adipisicing adipisicing eiusmod labore velit pariatur id enim. Aliquip fugiat adipisicing et dolor eu minim irure anim ea cupidatat. Pariatur magna duis ullamco anim culpa nisi nostrud.",
      "registered": "12.04.2014"
    }
   ]
}

另外,我有一个表单,我可以在其中添加一个用户,它看起来像

enter image description here

我正在尝试将新用户添加到 db.json 中:

<template>
    <div>
        <h3>Add user</h3>
        <hr>
        <template>
            <user-form-add v-model="user" /> // userForm on the PICTURE!
            <button type="button" class="btn btn-success" @click="save">Save</button>
            <button type="button" class="btn btn-danger" @click="cancel">Cancel</button>
        </template>

    </div>
</template>
<script>
    import axios from '@/axios.js'
    export default {
        name: 'AddUserPage',
        components: {
            UserFormAdd: () => import('@/components/UserFormAdd.vue')
        },
        data:() => ({
            user: {
            },
            restUrl: '/users'
        }),
        computed: {
            id() {
                return null
            },
            url() {
                return `${this.restUrl}/${this.id}`
            }
        },
        methods: {
            redirectToList () {
                this.$router.push('/users')
            },
            save() {
                axios
                    .put(this.url, this.user)
                    .then(() => this.redirectToList())
                    .catch(error => `Error: ${error}`)
            },
            cancel() {
                this.redirectToList()
            }
        }
    }
</script>

所以,当我尝试保存时,控制台告诉我:

PUT /users/null 404 1.492 ms - 2

并且,例如,如果我将 id 设置为

id() {
    return 0
}

在我的 db.json 中,第一个对象被替换为一个新对象:

PUT /users/0 200 1.397 ms - 143

我做错了什么?非常感谢。

最佳答案

保存用户/创建用户,您应该使用发布请求。你不需要传递 id。如果您想更新您的用户,那么您需要使用当前的用户 ID提出请求

关于javascript - 如何将新用户添加到 db.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49426776/

相关文章:

javascript - jQuery - 在后面的元素上触发点击事件

javascript - PHP MySQL - 添加新记录时发送电子邮件警报,但

javascript - Vue2尝试拼接对象的最后一个元素时出错

javascript - 如何让 jasmine 读取单个文件 Vue 组件?

javascript - Angular 4 - for循环中的ngIf

javascript - 为什么在嵌入 c++ 的 v8 中运行一个非常简单的脚本会耗尽内存?

Restful api 和搜索、邀请等操作

java - 使用 spring RestTemplate 消耗 json+hal _embedded 资源的问题

java - Rally 向变更集添加变更列表。使用 Java Toolkit for Rally REST API

javascript - 如何在 'value' 输入之前修改 VueJS 中的 `$emit(' prop')`完成更新