【问题标题】:How do url is giving response without returning in nodeurl如何在不返回节点的情况下给出响应
【发布时间】:2018-06-24 04:39:36
【问题描述】:
router.delete('/:productId',(req , res,  next) =>{

        res.status(200).json({
            message : "Deleteed product",

        });
    })

1)嗨,我是 node.js 的新手,我遇到了以下代码,我非常了解在没有返回对象的情况下,邮件是如何在邮递员中显示的

2) 以同样的方式在任何人可以解释的地方返回代码

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    res.json() 告诉 Express 将该对象转换为 JSON 并将其作为 http 响应发送。以这种方式在 Express 中发送响应,而不是通过返回对象。

    为了进一步解释,router.delete() 注册了一个路由和一个回调,以在该路由与传入的 http 请求匹配时调用。当传入请求与route.delete() 的第一个参数指定的路由匹配时,Express 框架将调用回调。

    然后,该回调可以做一些事情来响应传入的 http 请求。它可以发送对 http 请求的响应(从而完成 http 请求),也可以调用 next(),这将告诉 Express 框架继续寻找可能与当前 http 请求匹配的其他路由。

    在这种特殊情况下,res.json() 发送 http 响应(完成 http 请求)。这就是 Express 中的路线的工作方式。 res.send() 发送文本,res.json() 转换为 JSON 并发送该字符串。如果您想发送对 http 请求的响应,您可以执行其中任一操作。

    Express 不希望对route.delete() 的回调具有任何类型的返回值。相反,回调要么发送 http 响应,要么通过调用 next() 告诉 Express 继续路由。在这种特殊情况下,代码发送带有res.json() 的http 响应。

    【讨论】:

    • 谢谢(我没有在代码中提到)但是我们为什么要导出 module.exports = router;插入使用文件名
    • @mdvenkateshnuhk - 你没有展示任何代码,所以我不能在没有看到实际代码的情况下评论你的代码在做什么。 module.exports = router; 听起来像是在导出路由器,以便其他一些 nodejs 模块可以加载此模块并访问路由器以使用它。这是将路由放在另一个文件中然后导出路由以便其他代码可以使用它的常用方法。
    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 2018-09-15
    • 2018-01-28
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    相关资源
    最近更新 更多