は、私は、座標は、Googleまたは類似の関数呼び出しを使用して取得されNode.jsではどのようにクライアント側のJavaScriptと通信するのですか?例えば
function getLocation() {
var latitude = ...;
var longitude = ...;
}
JavaScript関数を持つクライアント側を想定します。この情報をNode.jsサーバーにどのように送信できますか?
は、私は、座標は、Googleまたは類似の関数呼び出しを使用して取得されNode.jsではどのようにクライアント側のJavaScriptと通信するのですか?例えば
function getLocation() {
var latitude = ...;
var longitude = ...;
}
JavaScript関数を持つクライアント側を想定します。この情報をNode.jsサーバーにどのように送信できますか?
最も簡単な方法は? Expressを設定し、クライアント側コードをAjax経由で通信させる(たとえば、jQueryを使用)。クライアント側では
(function() {
var app, express;
express = require("express");
app = express.createServer();
app.configure(function() {
app.use(express.bodyParser());
return app.use(app.router);
});
app.configure("development", function() {
return app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
app.post("/locations", function(request, response) {
var latitude, longitude;
latitude = request.body.latitude;
longitude = request.body.longitude;
return response.json({}, 200);
});
app.listen(80);
}).call(this);
、あなたはこのようにそれを呼び出すことができます:このコードは、単に一例である
var latitude = 0
, longitude = 0; // Set from form
$.post({
url: "http://localhost/locations",
data: {latitude: latitude, longitude: longitude},
success: function (data) {
console.log("Success");
},
dataType: "json"
});
注意。あなたはエラー処理などを解決しなければならないでしょう。
希望に役立ちます。
ウェブアプリケーションの他のサーバーサイドプログラムと同じように、HTTPリクエストを行うことによって、
XMLHttpRequest objectで、または<form>
を生成して送信したり、さまざまな方法で送信できます。
またはWebSocketを開きます。 – Raynos
(ソフト)リアルタイム機能が必要な場合は、Socket.io libraryを使用することをおすすめします。ソケットを使用すると、ノードはクライアント側のスクリプトにデータをプッシュすることもできます。
彼はおそらくsocket.ioを必要としません。 – Raynos
母、なぜQuentinのポストでWebSocketsについて言及しましたか? :D。それはまさにsocket.ioが提供するものですが、クロスブラウザのサポートがあります。 –
NowJSはあなたにぴったりだと思います。例:
// On the Node.JS server
var nowjs = require("now");
var everyone = nowjs.initialize(httpServer);
everyone.now.getServerInfo = function(callback){
db.doQuery(callback);
}
// In the browser
<script>
now.getServerInfo(function(data){
// data contains the query results
});
</script>
あなたは、クライアントからサーバーや他の方法で回避し、共通の名前空間(すなわちnow
オブジェクト)に変数と関数を入れることができます。
RPCが必要だと思います。 node modules section also has a section covering RPC。私はあなたがDNodeを見ているべきだと思います。 DNode on the browser sectionをご覧ください。
何らかのテンプレートシステムを使用してみませんか?それはあなたの人生を楽にします – elclanrs
@elclanrsどのようにテンプレート化するのが助けになるでしょうか? – Raynos