【发布时间】:2021-01-01 02:58:46
【问题描述】:
React 管理员抱怨,因为它说缺少 Content-Range 标头,这不是任何想法吗?我应该指出这是我第一次使用 RA,所以可能会遗漏一些东西。
表达api代码:
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*")
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, X-Total-Count, Content-Range")
next()
});
app.get('/quickdrop/retailer', function(req, res) {
const { Client } = require('@elastic/elasticsearch')
const client = new Client({
node: 'https://creds',
})
var allRecords = []
client.search({
index: 'the index',
type: 'product',
scroll: '10s',
body: {
query: {
"match_all": {}
}
}
}, function getMoreUntilDone(error, response) {
// collect all the records
console.log(allRecords.length)
response.body.hits.hits.forEach(function (hit) {
allRecords.push(hit);
});
if (response.body.hits.total.value !== allRecords.length) {
// now we can call scroll over and over
client.scroll({
scrollId: response.body._scroll_id,
scroll: '10s'
}, getMoreUntilDone);
} else {
const response = allRecords.map((item) => {
return {
title: item._source.name,
image: item._source.tthsImage,
barcode: item._id
}
})
res.set("Content-Range", `retailer 0-${allRecords.length}/${allRecords.length}`)
res.set("X-Total-Count", allRecords.length)
res.json(response);
}
});
});
回复截图:
使用 axios 从数据提供者获取列表:
getList: (resource, params) => {
const { page, perPage } = params.pagination;
const { field, order } = params.sort;
const query = {
sort: JSON.stringify([field, order]),
range: JSON.stringify([(page - 1) * perPage, page * perPage - 1]),
filter: JSON.stringify(params.filter),
};
const url = `${apiUrl}/${resource}?${stringify(query)}`;
return axios.get(url).then((response) => {
console.log(response.headers) // Returns content length and type
let records = response.data.map(record => ({ id: record.barcode, ...record }))
return {
data: records,
total: records.length,
}
})
}
【问题讨论】:
标签: react-admin