任何人都可以解释为什么这样:
// this works
router.route('/videos')
.get((req, res)=>{
Video.find()
.exec()
.then(console.log);
});
// this also works
router.route('/videos')
.get((req, res)=>{
Video.find()
.exec()
.then(videos=>{
res.json(videos)
});
});
有效,而且:
router.route('/videos')
.get((req, res)=>{
Video.find()
.exec()
.then(res.json);
});
没有按'?吨
res
对象表示Express.js应用程序在收到HTTP请求时发送的HTTP响应。 console.log
方法输出视频数据,而res.json
似乎没有被调用。
答案 0 :(得分:1)
res.json
作为方法调用,res
为this
值。它适用于console.log
,因为它已绑定到节点中的console
对象。
您可以使用
.then(res.json.bind(res))
或继续使用该箭头功能。另请参阅How to access the correct `this` context inside a callback?