使用Node.js在服务器端保存客户端数据

我一直在我的机器上尝试Node.js一段时间,我发现我的HTTP请求,XHR对象等知识相当缺乏。 所以在使用Node的时候,我一直在唠叨的主要是我似乎无法理解如何从客户端到服务器进行通信(除了简单的GET请求之外),反之亦然。 我最近的项目是一个简单的2人棋牌游戏(没有AI对手)。

我想要做的是能够将游戏板数据(JSONstring)发送到服务器,并将其保存到文件中。 我知道如何在客户端使用XHR对象获取文件内容。 我也了解如何使用Node的fs模块在服务器端创build和读取文件。 我不明白的是如何使用XHR对象将string发送到服务器,并有节点进程并将其保存到文件中。 用这种方式是否可以使用客户端代码调用服务器端代码? 试图通过一个XHR对象发送一个参数给服务器这样做的一个不正确的方法?

如果我所要求的话题太广泛,我也会对服务器和客户端通信这个话题的链接和书籍开放。

您可以使用XHR在POST有效负载中发送带有(例如)JSON数据的HTTP请求。

然后,您可以编写处理此请求的服务器端Node.js代码,读取有效内容,并根据数据执行任何操作。

扩大对SLaks的回答有点:

假设你在客户端上使用jQuery ,并在服务器上expression (两者都是有用的框架,以避免重新创build低级别的东西),你可以做这样的事情。

客户

$.ajax({ type: "POST", url: "http://www.yourserver.com:3000/some/path", data: { ...chessdatahere... } }).done(function(msg) { alert("Data Saved: " + msg); }); 

服务器

 var fs = require('fs'); var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.json()); app.post('/some/path', function(req, res) { fs.writeFile('filename', res.body, function(err) { if (err) { res.send('Something when wrong'); } else { res.send('Saved!'); } }) }); app.listen(3000); 

(请注意,代码没有经过testing,但至less应该显示一般的想法)。