Node JS:app.get() 未按预期运行

NodeJS : app.get() does not operate as I exected

我是 NodeJS 的新手,这是我的 routes/recom.js,它现在正在做很多逻辑工作。稍后我会将逻辑移至其他地方。但是现在我需要先解决错误。

exports.scrape = function(req, res) {

  var APIURI = 'https://www.kimonolabs.com/api/abbxqyg4?apikey=6IrCGNcorodTBSfNawS6sZkHw3LeZVIN';
  var receivedJason; 
  res.type('text/plain');     
  request({
    url: APIURI,
    json: true
  }, function (error, response, body) {
   if (!error && response.statusCode === 200) {
    console.log('API Retrieved Successfully!');
    res.json(body);
    receivedJason = JSON.stringify(body);

    var node = db.createNode({hello: 'world'});     // instantaneous, but...
    node.save(function (err, node) {    // ...this is what actually persists.
      if (err) {
        console.error('Error saving new node to database:', err);
      } else {
        console.log('Node saved to database with id:', node.id);
      }
    });

   }
  });          
};

这是我的 app.js

var express = require('express');
var recom = require('./server/routes/recom.js');

var app = express();

app.get('/', recom.scrape);

app.listen(process.env.PORT || 2019);

我收到以下错误:

Route.get() requires callback functions but got a [object Undefined]

如有任何帮助,我们将不胜感激。

错误似乎在导出中。在 routes/recom.js 中使用:

module.exports.scrape = function(req, res) { //...

您得到 [object Undefined] 的原因是 exportsmodule.exports 不是同一个对象,因此查找的项目不存在。

此外,在 app.js 中您可能需要使用以下之一:

var recom = require('routes/recom.js');
// or:
var recom = require('server/routes/recom.js');

取决于你的完整结构。