我正在一本关于使用 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 行创建的 bool 值 p
上。难道不应该将其附加到 tours
数组中的某个元素上吗?
我是否遗漏了某些内容,或者这是一些需要向发布商报告的勘误表?
最佳答案
如果 tours
是一个数组,p
将是 Array.prototype.some
返回的 bool 值,因此我阅读此内容的方式这段代码不会做任何有用的事情。但是,如果 tours.some
是返回第一个匹配的游览实例的自定义方法,那么该代码段可能有意义,但我们需要了解 tours
是什么查看全貌。
关于javascript - 这个节点/快速路由如何完成更新?或者确实如此?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25419092/