我希望能够将用户生成的JSON对象发布到NodeJS服务器,并将它们存储在一个数组中,以便刷新页面不会影响数据。然后我希望能够将信息读回到表中,以便它不断反映数组的内容。
NodeJS有可能吗?如果是这样,有人可以给我指向正确的方向吗?我能够传递JSON对象(作为req.body),但我不知道从哪里开始。
谢谢!
答案 0 :(得分:0)
正如Sri建议的那样,您应该明确地将数据阵列存储到数据库中。 使用Redis,Mongo,MySQL ......它更依赖于您的数据形状和使用方式。
如果你只需要存储临时数组(暂时,我的意思是“只要浏览会话”或“只要服务器启动”),你就可以将数据存储在内存中。
例如ExpressJs:
var express = require('express');
// in memory storage
var data = [];
var app = express()
.use(express.bodyParser())
.use(express.cookieParser())
.use(express.cookieSession({secret:'sample'}))
.post('/data', function(req, res){
// do not need session, just memmory ? use this line
// data.push(req.body);
// creates the session if needed, and store data
if (!req.session.data) {
req.session.data = [];
}
req.session.data.push(req.body);
res.send(204);
})
.get('/data', function(req, res){
res.setHeader('Content-Type', 'application/json');
// stored in session ?
res.send(req.session.data || []);
// stored in memory ?
// res.send(data);
})
.listen(80);
-----编辑-----
要添加新数据并在单个请求中返回,只需在POST响应中发送数组:
.post('/data', function(req, res){
// store in memory
data.push(req.body);
// send it back, updated, in json
res.setHeader('Content-Type', 'application/json');
res.send(data);
})
有一个假设:你应该用ajax调用来调用你的帖子,而不是常规的HTML表单。请参阅jquery.Ajax doc以获取已解析的服务器结果。