请有人帮我理解这段代码。这是 Fuse React 代码的一部分,你可以用谷歌搜索它。问题,我不知道如何将数据保存到 DynamoDB。我应该使用 Lambda 保存到 DynamoDB 还是这段代码正在做所有事情,而我只需要更改 Axios Get URI?我没有得到请求中的路径:
await axios.get('/api/todo-app/todos'
我应该在我的 api 网关上有一个确切的路径吗?如果是,我应该包括api吗?或者这意味着我的 api 服务器 URL?
这是默认代码,没有任何更改。Todo App 通过 Axios 发送请求:
export const getTodos = createAsyncThunk(
'todoApp/todos/getTodos',
async (routeParams, { getState }) => {
routeParams = routeParams || getState().todoApp.todos.routeParams;
const response = await axios.get('/api/todo-app/todos', {
params: routeParams,
});
const data = await response.data;
return { data, routeParams };
}
);
并且模拟 api 正在接收如下请求:我不知道我应该将其复制并粘贴到 Lambda 中吗?或者它只是一个模拟 api,如果我使用 DynamoDB,我根本不需要它。
mock.onGet("/api/todo-app/todos").reply((config) => {
const { params } = config;
let response = [];
if (params.labelHandle) {
const labelId = todoDB.labels.find(
(label) => label.handle === params.labelHandle
).id;
response = todoDB.todos.filter(
(todo) => todo.labels.includes(labelId) && !todo.deleted
);
} else if (params.filterHandle) {
if (params.filterHandle === "deleted") {
response = todoDB.todos.filter((todo) => todo.deleted);
} else {
response = todoDB.todos.filter(
(todo) => todo[params.filterHandle] && !todo.deleted
);
}
} // folderHandle
else {
let { folderHandle } = params;
if (!folderHandle) {
folderHandle = "all";
}
if (folderHandle === "all") {
response = todoDB.todos.filter((todo) => !todo.deleted);
} else {
const folderId = todoDB.folders.find(
(folder) => folder.handle === folderHandle
).id;
response = todoDB.todos.filter(
(todo) => todo.folder === folderId && !todo.deleted
);
}
}
return [200, response];
});
这似乎很容易配置,但我已经工作了 2 周,但没有运气!
任何解释都会非常有帮助的家伙!谢谢,