无法读取undefined的属性'send'

bro*_*lla 2 javascript node.js express

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

这是代码

app.js

var Cake = require('./modules/cake');

router.get('/cakes', function(req, res) {
  Cake.getCake();
})
Run Code Online (Sandbox Code Playgroud)

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);
      }
    });
  }
};
Run Code Online (Sandbox Code Playgroud)

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

nem*_*035 7

你不及格reqres向下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()`
})
Run Code Online (Sandbox Code Playgroud)

你应该有:

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

甚至是速记:

router.get('/cakes', Cake.getCake);
Run Code Online (Sandbox Code Playgroud)