Node JS:app.get()没有像我预期的那样运行

时间:2015-01-09 08:15:44

标签: javascript node.js

我是NodeJS的新手,这里是我的路线/ 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()需要回调函数但得到[object Undefined]

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

错误似乎在导出中。在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');

取决于你的完整结构。