1

クロムコンソール経由でオブジェクトの値を出力しようとすると、未定義になり続けます。コード:

ws.on('message', function(message) {
     var JSONobj = {"cmd":"updatesb","name":"TestName"};
     console.log('JSON Name Value: %s', message.name); //<--does not work
     console.log('JSON Name Value: %s', JSONobj.name); //<----WORKS!!!!
});

ws.on の message 引数は、websocket 通信経由で {"cmd":"updatesb","name":"TestName"} を渡します。最初のコンソール出力は未定義です。2 番目の出力は TestName です。TestName の値が必要なのに message.name が定義されていないのはなぜですか? また、message.name から値を取得するにはどうすればよいですか?

4

2 に答える 2

0

試す:

 message.name = 'xxx';
 console.log('JSON Name Value: %s', message.name);

message.nameが成功するかどうかを確認します。他の人が指摘したように、messageあなたが考えていることではない可能性が最も高いです。

console.log(message);また、出力を調べてみてください。

また、onハンドラーがメッセージ以外にも受け取る可能性があるため、ハンドラーは実際には のようfunction(something_else, message)に見えるはずですが、ws が何であるかを知らずに知ることは困難です。

于 2013-06-26T02:43:00.400 に答える