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));
});
我是第一次使用 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));
});