React-Admin 显示来自 mongoDB 的数据,但我无法编辑

问题描述

我第一次使用 React Admin,我的用户(来自 mongoDB)显示得很好。当我单击特定用户上的“编辑”(或“删除”)按钮时会出现问题:它说“GET http://localhost:3002/api/users/2a1a3a61-f73b-4a01-b609-ae4bb815f59e 404(不是找到)”

我使用“http://localhost:3002/api/users”向mongoDB发送GET请求:“app.use('/api/users',require('./api/GetUsers'))” “2a1a3a61-f73b-4a01-b609-ae4bb815f59e”是我点击的用户的id。

我记得当我第一次开始测试 React Admin 时,我使用 jsonplaceholder.typicode 来获取数据并且编辑功能也能正常工作,当然,刷新时不会持续。

我错过了什么?问题是我的 api (http://localhost:3002/api/users) 目的只是获取数据而不是发布/放置,也许?

/api/GetUsers

const express = require('express');
const mongoose = require('mongoose');
const ContactUser = require('../DB/ContactUser');
const router = express.Router();

const getUsers = async (req,res) => {
    ContactUser.find()
        .exec((err,user) => {
            if(err){
                res.json(err);
            } else {
                res.setHeader('Access-Control-Expose-Headers','Content-Range');
                res.setHeader('Content-Range','users 0-20/20');
                res.json(user);
            }
        })
};

router.route('/').get(getUsers);
module.exports = router;

/DB/ContactUser

const mongoose = require('mongoose');

const contactUser = new mongoose.Schema({
    name: String,email: String,message: String,id: String
});

module.exports = mongoose.model('contactUser',contactUser);

解决方法

您缺少的第二条路径不是检索用户列表,而是检索单个用户。它将使用 URL 中的 id 来查找一个用户。类似的东西:

router.get('/:id',function(req,res) {
    ContactUser
        .findOne({ _id: req.params.id })
        .exec((err,user) => err ? res.json(err) : res.json(user));
});