簡體   English   中英

在Node.js中如何與客戶端JavaScript通信?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM