Node.jsにサーバーアプリケーションを開発しています。理解を深めるために、私は自分の問題をよりよく指摘するために非常に軽いコードを書いた。Nodejs:サーバーとクライアント間のデータ交換
Server.js私が書いた "公共" ディレクトリ内だから、
var express = require('express');
var app = express();
var port = process.env.PORT || 80;
var room = function(){
this.users = {};
this.counter = 0;
}
app.get('/reg',function(req,res){
console.log(req.params);
});
app.use('/recosh', express.static(__dirname + '/public/'));
app.listen(port, function(){console.log('ReCoSh Server Starts...\n');});
2次のクライアント側のファイル:これは、サーバー側で
room.js
var room = {
//notifica al server una nuova registrazione
register: function(data){
$.getJSON('/reg',data);
}
}
index.html
<!doctype html>
<html>
<head>
<script src="room.js"></script>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
var register = function() {
room.register({
"username": $("#username").val(),
});
}
</script>
</head>
<body>
<div id="step1">
<input id="username">
<button onclick="register()">register</button>
</div>
</body>
</html>
問題は、ユーザー名を挿入し、レジスタをクリックすることで、サーバー上のコードconsole.log(req.params);
がちょうど{}
を印刷しておくことです。それはオブジェクトが空であるようです...私が試してみたらconsole.log(req.params["username"])
それはundefined
を印刷します。
なぜこの単純なオブジェクトがサーバーから見えないのですか?
は、すべての
@Karlenにお返事ありがとうございます。 ''タグに関して、私はidとしてニックネームを使用しましたが、 '
'のスクリプトコードでは、' register.'関数を 'room.register({" username ":$("#nickname " ).val()});} '。しかし、私はあなたの提案を試みたが、依然としてworkignではない "追加されたユーザー"は表示されません... – pittuzzo私はあなたが答えを受け入れることを確認します。あなたが成功することを願って – Karlen