Я работаю над проектом с vue, express, mongodb и axe ios, чтобы иметь возможность CRUD для пользовательской страницы. В настоящее время я настроил, где, когда вы нажимаете на ячейку, он обновляет базу данных. Тем не менее, я продолжаю получать эту ошибку в консоли, когда пытаюсь сохранить свои изменения: «MongooseError [CastError]: сбой приведения к ObjectId для значения« undefined »в пути» _id »для модели« Пользователь »« В моей системе не регистрируются данные Кроме того, консоль из моего "console.log (_id)", печатается только {} undefined. Я еще не нашел ничего, что помогло бы мне. Любая помощь будет принята с благодарностью. Вот мое приложение. Vue
<template>
<div id="nav">
<router-link to="/">Home |</router-link>
<router-link to="/edituser"> Add/Edit/Delete User</router-link>
<router-view></router-view>
<h3>List of Users</h3>
<table id="table">
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>Password</th>
</tr>
</table>
<div v-for="user in users" :key="user" class="userlist">
<p :to="{query:{user: firstname}}" contenteditable>
{{user.firstname}}
</p>
<p :to="{query:{user: lastname}}" contenteditable>
{{user.lastname}}
</p>
<p :to="{query:{user: email}}" contenteditable>
{{user.email}}
</p>
<p :to="{query:{user: password}}" contenteditable>
{{user.password}}
</p>
</div>
<br>
<button v-on:click="saveEdit">Save Changes</button>
</div>
</template>
<script>
import UserService from "./UserService"
export default {
name: "Navigation",
data(){
return{
users: [],
user: Object,
userId: '',
err: ''
}
},
methods:{
saveEdit(){
try{
this.user = UserService.updateUsers(this.user)
} catch (err){
this.error = err.message;
}
}
},
async created(){
try{
this.users = await UserService.getUsers();
} catch(err){
this.error = err.message;
}
}
}
</script>
Вот мое Usersservice. js
import axios from "axios";
const mongoURL = "http://localhost:5000/api/posts";
static updateUsers(user){
const url = `${mongoURL}/update/${user._id}`
console.log(url)
return axios.put(url, {
user,
})
}
export default UserService;
Here is my Users.js model
const mongoose = require('mongoose');
const User = mongoose.model("User",{
firstname: {
type: String,
required: true,
trim: true
},
lastname: {
type: String,
required: true,
trim: true
},
email: {
type: String,
required: true,
trim: true
},
password: {
type: String,
required: true,
trim: true
}
})
module.exports = User;
Вот мои сообщения. js
const express = require("express"),
mongoose = require("mongoose"),
User = require("../models/Users.js"),
router = express.Router();
router.put("/update/:id", async (req,res) =>{
console.log(req.body);
const user = new User(req.body["user"]);
const _id = req.params.id;
console.log(_id);
console.log(req.body["user"]);
const updateProperies = Object.keys(user);
try{
const editUser = await User.findByIdAndUpdate(_id,user,{
});
if (!editUser){
return res.status(404).send();
}
console.log(editUser);
res.send(editUser);
} catch (error) {
console.log(error);
res.status(400).send(error);
}
})