无法读取undefined的属性'handle'。 Parse.com迁移

时间:2016-01-29 14:52:23

标签: javascript node.js mongodb parse-platform parse-server

parse.com宣布他们将于明年关闭的大噩梦。现在我正在尝试使用MongoDB测试他们建议的解决方案。问题是,我遇到了javascript错误。我在parse-servir-github得到了git ,添加了我的应用设置并运行了node index.js。现在,我在尝试访问本地服务器时遇到错误:

  

在端口1337上运行的parse-server-example。   /Users/ferrojr/DeveloperTools/parse-server/node_modules/express/lib/application.js:120   this._router.handle(req,res,function(err){                 ^

     

TypeError:无法读取undefined的属性'handle'       在Function.app.handle(/Users/ferrojr/DeveloperTools/parse-server/node_modules/express/lib/application.js:120:15)       在Server.app(/Users/ferrojr/DeveloperTools/parse-server/node_modules/express/lib/express.js:28:9)       在emitTwo(events.js:87:13)       在Server.emit(events.js:172:7)       在HTTPParser.parserOnIncoming [as oncoming](_http_server.js:528:12)       在HTTPParser.parserOnHeadersComplete(_http_common.js:88:23)

以下是application.js中的代码。

app.handle = function(req, res, done) {
  var env = this.get('env');

  this._router.handle(req, res, function(err) {
    if (done) {
      return done(err);
    }

    // unhandled error
    if (err) {
      // default to 500
      if (res.statusCode < 400) res.statusCode = 500;
      debug('default %s', res.statusCode);

      // respect err.status
      if (err.status) res.statusCode = err.status;

      // production gets a basic error message
      var msg = 'production' == env
        ? http.STATUS_CODES[res.statusCode]
        : err.stack || err.toString();
      msg = escapeHtml(msg);

      // log to stderr in a non-test env
      if ('test' != env) console.error(err.stack || err.toString());
      if (res.headersSent) return req.socket.destroy();
      res.setHeader('Content-Type', 'text/html');
      res.setHeader('Content-Length', Buffer.byteLength(msg));
      if ('HEAD' == req.method) return res.end();
      res.end(msg);
      return;
    }

    // 404
    debug('default 404');
    res.statusCode = 404;
    res.setHeader('Content-Type', 'text/html');
    if ('HEAD' == req.method) return res.end();
    res.end('Cannot ' + escapeHtml(req.method) + ' ' + escapeHtml(req.originalUrl) + '\n');
  });
};

无论如何,我是iOS developer,对node.js没有经验,我只是想关注parse.com教程并设置我的数据库以使用mongoDB和{ {1}}本地。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

在“var env = this.get('env');”之后,请添加“console.dir(this._router);”记录this._router变量的内容。我猜它是未定义的,这会导致错误。

结果应出现在node.js命令提示符中。