[英]How do I get to transfer an array from the server side to client side in node.js?
[英]In Node.js how do I communicate with client side JavaScript?
例如,假設客戶端我有一個JavaScript函數
function getLocation() {
var latitude = ...;
var longitude = ...;
}
使用對Google或類似的函數調用來檢索坐標。 如何將此信息傳輸到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請求,就像在Web應用程序中使用任何其他服務器端程序一樣。
您可以使用XMLHttpRequest對象 ,或通過生成<form>
然后提交它或其他各種方法來完成此操作。
如果您需要(軟)實時功能,我建議使用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 。 節點模塊部分還有一個覆蓋RPC的部分 。 我想你應該看看DNode 。 看一下瀏覽器部分的DNode 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.