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

React-Admin displays data from mongoDB but I cannot Edit

我是第一次使用 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) 的目的只是获取数据而不是 post/put 吗?

/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));
});