我正在使用JSON server npm应用程序,我正在为一个简单的应用程序定义端点。我的意图是创建一个POST请求端点,它更新或替换数组中的单个元素。为此,我已经实现了这段代码。
server.use((req, res, next) => {
const TEST_CASE_PATH = 'tf-test-cases'
if (req.path == `/${TEST_CASE_PATH}`){
else if (req.method === 'POST') {
console.log('MADE A POST REQUEST!')
const newTC = req.body as TestCase
console.log(newTC)
let testCases = JSON.parse(JSON.stringify(router.db.get(TEST_CASE_PATH))) as TestCase[]
for (let i = 0; i < testCases.length; i++){
const testCase = testCases[i];
if (newTC.uuid == testCase.uuid){
testCases[i] = newTC;
// update db old test case with new test case
// send user new test case as response
return;
}
}
testCases.push(newTC)
// update db with new test case
// send user new test case as response
res.send(testCases);
return;
}
else if (req.method == 'DELETE') {
console.log('MADE A DELETE REQUEST!')
res.send({req: "delete"})
}
}
else {
// Continue to JSON Server router
next()
}
})
如果这不是很清楚我打算做什么,我的目标是在端点TEST_CASE_PATH
处查询数据库,查找请求主体中TestCase对象的uuid是否等于任何现有的,如果是,则替换它并将新的TestCase对象列表发布到数据库,否则,将新的TestCase推到列表并将新的列表发布到数据库。
我的问题是:我的数据库没有更新新的测试用例,响应是正确的,所以我确定添加/修改列表条目逻辑正在工作。我如何将更新的TestCase[]列表写入端点的数据库?
提前感谢。我希望解决方案不是微不足道的。我已经搜索了the repo以及其他堆栈溢出问题,但我似乎找不到答案。我没有选择,只能使用它作为一个简单的DB在工作。
1条答案
按热度按时间dtcbnfnu1#
找到解决方案: