无法读取未定义的属性“发送”

我试图从外部脚本发送数据到路由器,并返回错误TypeError: Cannot read property 'send' of undefined

这是代码

app.js

 var Cake = require('./modules/cake'); router.get('/cakes', function(req, res) { Cake.getCake(); }) 

cake.js

 module.exports = { getCake: function (req, res) { request({ url: "http://get.cakes/json", json: true }, function (error, response, body) { if (!error && response.statusCode == 200) { res.send(body); } }); } }; 

请注意, http://get.cake/不是真正的网站。 这个问题无关紧要。

你没有传递req然后取消getCake

 router.get('/cakes', function(req, res) { Cake.getCake(); // <-- you're passing nothing here so `res` is undefined within `getCake` and so you're calling `undefined.send()` }) 

你应该有:

 router.get('/cakes', function(req, res) { Cake.getCake(req, res); // <-- pass `req` and `res` down to `getCake` }) 

甚至速记:

 router.get('/cakes', Cake.getCake);