该节点/快递路由如何完成更新?或者是这样



我在一本关于Node和Express的Web开发的书中看到了这段代码,我看不出这条路由将如何更新任何东西。

Example 6-13. PUT endpoint for updating
// API that updates a tour and returns JSON; params are passed using querystring
app.put('/api/tour/:id', function(req, res){
    var p = tours.some(function(p){ return p.id == req.params.id });
    if( p ) {
        if( req.query.name ) p.name = req.query.name;
        if( req.query.price ) p.price = req.query.price;
        res.json({success: true});
    } else {
        res.json({error: 'No such tour exists.'});
    }
});

它似乎将更新的信息添加到在第5行创建的布尔值p上。它不应该把它附加到tours数组中的某个元素上吗?

是我遗漏了什么,还是这是一些需要报告给出版商的勘误表?

如果tours是一个数组,那么p将是由Array.prototype.some返回的布尔值,因此此代码不会做任何有用的事情。但是,如果tours.some是一个自定义的方法,它返回第一个匹配的tour实例,那么这个代码片段可能是有意义的,但是我们需要了解tours是什么才能看到整个画面。

最新更新