【问题标题】:node.js web app not responding as it should benode.js Web 应用程序没有响应,因为它应该是
【发布时间】:2014-05-29 08:13:52
【问题描述】:

我在heroku/虚拟服务器上部署了pusher的认证程序代码。服务器应用程序启动成功,但是当 android 移动客户端尝试连接时,控制台上会显示以下错误 -

TypeError: Cannot call method 'handle' of undefined
at Function.app.handle (~/MessagingServer/node_modules/express/lib/application.js:122:16)
at Layer.fn [as handle] (~/MessagingServer/node_modules/express/lib/application.js:189:17)
at trim_prefix (~/MessagingServer/node_modules/express/lib/router/index.js:255:15)
at ~/MessagingServer/node_modules/express/lib/router/index.js:216:9
at Function.proto.process_params (~/MessagingServer/node_modules/express/lib/router/index.js:284:12)
at next (~/MessagingServer/node_modules/express/lib/router/index.js:207:19)
at Layer.expressInit [as handle] (~/MessagingServer/node_modules/express/lib/middleware/init.js:23:5)
at trim_prefix (~/MessagingServer/node_modules/express/lib/router/index.js:255:15)
at ~/MessagingServer/node_modules/express/lib/router/index.js:216:9
at Function.proto.process_params (~/MessagingServer/node_modules/express/lib/router/index.js:284:12)

但应用程序并没有崩溃。

Android 应用程序的 logcat 中记录了以下输出 -

05-29 08:01:21.960: I/System.out(2531): java.io.FileNotFoundException:     http://192.168.146.128:5000 com.pusher.client.AuthorizationFailureException: java.io.FileNotFoundException: http://192.168.146.128:5000

消息服务器的源代码在这里 -

var express = require( 'express' );
var Pusher = require( 'pusher' );
var logger = require('morgan');
var bodyParser= require('body-parser'); 
var app = express( logger() );
app.use( express(bodyParser() ));

var pusher = new Pusher( { appId: '<id>', key:'<key>', secret:'<secret>' } );

app.post( '/pusher/auth', function( req, res ) {
  var socketId = req.body.socket_id;
  var channel = req.body.channel_name;
  var auth = pusher.auth( socketId, channel );
  res.send( auth );
} );

var port = process.env.PORT || 5000;
app.listen( port );

【问题讨论】:

    标签: android node.js pusher


    【解决方案1】:

    您的 bodyParser 中间件未以正确的方式连接,因此 req.body 将是未定义的。你应该像这样附加你的中间件:

    app.use(logger());
    app.use(bodyParser());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多