javascript - 这个节点/快速路由如何完成更新?或者确实如此?

标签 javascript express

我正在一本关于使用 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/

相关文章:

JavaScript 游戏 : changing the angle of an object

javascript - 尽管返回 false,但通过 action 而不是 javascript 发送表单

javascript - php 发送空白电子邮件

javascript - 如何仅绘制起点和终点的 Highchart 图

javascript - 类型错误 : Cannot read property 'left' of undefined

javascript - "href:tel"链接无法在 IOS 中打开警报 View

javascript - 如何使用包含斜杠字符的参数?

node.js - Azure 上的 Node、Express API 应用程序出现容器启动失败错误

mysql - 在 Sequelize 中未定义 findOne 属性

javascript - Backbone 和 Express 路由器可以在 Express 应用程序中协同工作吗?