Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在快速put路由中使用req.params时出错_Javascript_Node.js_Ajax_Express - Fatal编程技术网

Javascript 在快速put路由中使用req.params时出错

Javascript 在快速put路由中使用req.params时出错,javascript,node.js,ajax,express,Javascript,Node.js,Ajax,Express,我想使用我的Ajax put调用发送两个值作为参数。taskID是一个整数,taskCompleted是一个布尔值。当taskID为两位数长(例如12)时,my req.params显示: { id: 1, completed: 2false } 下面是我的Ajax调用和put路径。我想了解如何发送参数,以便我的taskID和taskCompleted不会分开 $.ajax({ method: 'PUT', url: '/list/' + taskID + t

我想使用我的Ajax put调用发送两个值作为参数。taskID是一个整数,taskCompleted是一个布尔值。当taskID为两位数长(例如12)时,my req.params显示:

{ id: 1, completed: 2false }
下面是我的Ajax调用和put路径。我想了解如何发送参数,以便我的taskID和taskCompleted不会分开

 $.ajax({
        method: 'PUT',
        url: '/list/' + taskID + taskCompleted

您需要在路由定义中用斜线分隔这两个值,即使其
router.put('/:id/:complete')
才能工作

如果您将
completed
参数作为请求正文的一部分发送,我会更好,因为正文用于此目的,而url标识您要更新的资源

router.put( '/:id:complete', ( req, res ) =>{
    console.log( 'in router.put:', req.params );
    let queryString;
    if ( req.params.complete == 'true' ){
        queryString = `UPDATE "tasks" SET "completed" = false WHERE "id" = $1`;
    }else {
        queryString = `UPDATE "tasks" SET "completed" = true WHERE "id" = $1`;
    }
    pool.query( queryString , [req.params.id]).then( (results) =>{
        res.sendStatus( 200 );
    }).catch( (err) =>{
        res.sendStatus( 500 );
        console.log( err );
    })
})//end router.put