本文介绍如何使用Node.js和Express框架接收前端Ajax发送的POST请求,并通过body-parser解析数据,最终将客户端提交的JSON对象保存为服务器端的graph.json文件。
实现目的
实现目的
在使用D3.js构建的前端应用中,当用户与图表交互并修改内容后,如何确保下次加载时能显示上次交互的最终状态?
本文提供基于后端Node.js的最小化解决方案,供参考。
开发环境
开发环境
- 后端技术栈:Node.js
- 所需Node.js模块:Express、body-parser、fs
- 前端技术栈:JQuery
后端配置
后端配置
1、安装Node.js,安装完成后通过命令行显示版本号以确认安装成功。
node --version
2、新建工程目录(文件夹),并在其中安装相关模块。
npm install express
npm install body-parser
Express是一个Node.js Web应用程序框架,官方地址:http://expressjs.com/
body-parser用于解析HTTP请求体,官方地址:https://github.com/expressjs/body-parser
3、新建一个名为createServer.js的文件。
var express = require('express');
var bodyParser = require('body-parser');
var fs = require('fs');
var app = express();
// bodyParser.urlencoded解析form表单提交的数据
app.use(bodyParser.urlencoded({extended: false}));
// bodyParser.json解析json数据格式的
app.use(bodyParser.json());
app.post('/saveJSON',function(req, res){
// 对象转换为字符串
var str_json = JSON.stringify(req.body);
fs.writeFile('graph.json', str_json, 'utf8', function(){
// 保存完成后的回调函数
console.log("保存完成");
});
});
app.listen(3000);
4、运行createServer.js脚本。
Node createServer.js
该服务将监听来自 http://127.0.0.1:3000 的请求。
当请求路径为 http://127.0.0.1:3000/saveJSON 时,服务器会在当前目录下保存一个名为graph.json的文件,文件内容即为客户端发送的POST数据。
前端实现
前端实现
// 创建一个对象
var person = {
name: "lucy",
age: 25
}
// 通过JQuery 发送POST请求,内容是person
$.post("http://127.0.0.1:3000/saveJSON",person,function(data, status){
alert("Data: " + data + "\nStatus: " + status);
});
在浏览器加载页面后,后端控制台会输出“保存完成”,这是writeFile回调函数的执行结果。此时服务器目录下会出现graph.json文件,证明操作成功。
总结
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对本站的支持。