Ich entwickle eine Server-App in Node.js. Zum besseren Verständnis habe ich einen sehr leichten Code geschrieben, um besser auf mein Problem aufmerksam zu machen. Dies ist der Server-Seite:Nodejs: Datenaustausch zwischen Server und Client
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');});
So in der "public" Verzeichnis ich die beiden folgenden clientseitige Dateien geschrieben:
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>
Das Problem besteht darin, dass durch einen Benutzernamen einfügen und auf Register klicken, wird der Code console.log(req.params);
auf dem Server nur {}
drucken. Es scheint, dass das Objekt leer ist ... Wenn ich console.log(req.params["username"])
versuche, druckt es undefined
.
Warum ist dieses einfache Objekt nicht vom Server sichtbar?
Danke für die Antwort @Karlen. In Bezug auf das '' Tag, habe ich" Nickname "als ID verwendet, aber im Script Code in der'
' habe ich die Funktion 'register' geschrieben auf diese Weise' room.register ({"username": $ ("# nickname") .val()});} '. Aber ich habe versucht, Ihre Vorschläge, aber immer noch nicht funktioniert "Benutzer hinzugefügt" wird nicht angezeigt ... – pittuzzoIch sehe, Sie haben die Antwort akzeptiert. Hoffe, dass du Erfolg hast – Karlen