例如假设客户端我有一个JavaScript函数
function getLocation() {
var latitude = ...;
var longitude = ...;
}
使用对Google等的函数调用来检索坐标。如何将此信息传输到Node.js服务器?
答案 0 :(得分:13)
最简单的方法?设置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"
});
注意这段代码只是一个例子;你必须解决错误处理等问题。
希望有所帮助。
答案 1 :(得分:5)
通过发出HTTP请求,就像使用Web应用程序中的任何其他服务器端程序一样。
您可以使用XMLHttpRequest object执行此操作,或者通过生成<form>
然后提交它或其他各种方法来执行此操作。
答案 2 :(得分:2)
如果您需要(软)实时功能,我建议您使用Socket.io library。使用套接字,node也可以将数据推送到客户端脚本。
答案 3 :(得分:1)
我认为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
对象)中,从客户端到服务器,反之亦然。
答案 4 :(得分:0)
我认为你需要RPC。 node modules section also has a section covering RPC。DNode。我想你应该看看DNode on the browser section。看看{{3}}。