【发布时间】:2018-12-23 06:35:55
【问题描述】:
我有一个现有的 nodejs 和 express API 用于购物车。我想将此 API 与 react-admin 集成。 https://github.com/marmelab/react-admin。 我已将以下代码添加到 app.js 文件以从数据库加载类别。
// in src/App.js
import React from 'react';
import { Admin, Resource } from 'react-admin';
import restProvider from 'ra-data-simple-rest';
import { CategoriesList } from './categories';
const App = () => (
<Admin dataProvider={restProvider('http://localhost:5000/api')}>
<Resource name="categories" list={CategoriesList} />
</Admin>
);
export default App;
但它不断抛出以下错误:
HTTP 响应中缺少 Content-Range 标头。简单的 REST 数据提供者期望资源列表的响应包含此标头以及构建分页的结果总数。如果您使用的是 CORS,您是否在 Access-Control-Expose-Headers 标头中声明了 Content-Range?
另外,修改服务器端的代码以包含这些标头,如下所示:
/**
* GET request to retrieve all categories
*/
router.get('/api/categories', async (req, res) => {
try {
const categories = await Category.find({});
res.setHeader('Access-Control-Expose-Headers', 'Content-Range');
res.setHeader('Content-Range', 5);
res.send({ data: categories, total: 5 });
} catch (error) {
console.log(`error in getting categories ${error}`);
}
})
以前有没有人使用过 react-admin。我在这里错过了什么?
谢谢
【问题讨论】:
-
嗨,你怎么能解决你的问题?我遇到了同样的错误,请您帮帮我吗?
标签: node.js reactjs express react-admin