Problem with assignment 1

this is my code for the server
const express=require(‘express’)
const srv=express()

const todoRoute=require(’./assignment/todo’)
//app.delete(’/id’) ND SO ON

srv.use(express.json) //if it is in json format this line will maje sure it is decoded
srv.use(express.urlencoded({extended:true})) // same goes for this

srv.use(’/todo’,todoRoute)

srv.listen(2229)

/////////////////
and the following is my code for todo

const express=require(‘express’)
const Router=express.Router
const route=Router()

let todo=[
{task:“T1”,done:“yes”},
{task:“T2”,done:“no”}
]

route.get(’/’,(req,res)=>res.send(todo))

route.delete(’/:id’,(req,res)=>{
todo.pop({
task:req.query.task,
done:req.query.done
})
res.send(todo)
})

route.patch(’/’,(req,res)=>{
todo[req.params.id][0]=req.query.task,
todo[req.params.id][1]=req.query.done

})
route.post(’/’,(req,res)=>{
todo.push({
task:req.body.task,
done:req.body.done

})
res.send(todo)

})

route.get(’/:id’,(req,res)=>res.send(todo[req.params.id]))

module.exports=route

its not working

if should be srv.use(express.json())
note that express.json is a function that returns the middleware function.

This will not work.
todo[req.params.id] is an object and you are trying to modify it with square brackets, ie [0]
[0] does not imply the first property in the object, it means a property with key as 0

29%20AM

I have made some changes its still not working:

///////////////////////////////////////////////////////////////////////////////////////////////
todolist.js:

const route=require(‘express’).Router()

let todo=[

{task:"T1",done:"yes"},
{task:"T2",done:"no"},
{task:"T3",done:"yes"}

]

route.get(’/:id’,(req,res)=>res.send(todo[req.params.id])) //workd

route.delete(’/:id’,(req,res)=>{

todo.splice(req.params.id)

})

route.patch(’/:id/:t’,(req,res)=>{
{ todo[req.params.id].task:t.task,
todo[req.params.id].done:t.done}
res.send(todo)

})
route.post(’/’,(req,res)=>{

todo.push({
    task:req.body.task,
    done:req.body.done
})
res.send(todo)
//res.send('got a post request')

})

route.get(’/’,(req,res)=>res.send(todo))

module.exports=route

/////////////////////////////
index.js:

const express=require(‘express’)
const srv=express()

const todoRoute=require(’./todolist’)

srv.use(express.json())
srv.use(express.urlencoded({extended:true}))

srv.use(’/todo’,todoRoute)

srv.listen(2000)

route.patch(’/:id/’,(req,res)=>{
{ todo[req.params.id].task=req.body.task,
todo[req.params.id].done=req.body.done}
res.send(todo)

})

everything is working except for my patch request

i get that it has to be treated like an object and not an array but i am unable to understand where i am going wrong

code seems fine
try making a PATCH request from Postman.

try writing some console.logs here, see if requests lands in this middleware or not