Node.js如何响应Ajax的POST请求并且保存为JSON文件详解


Posted in Javascript onMarch 10, 2017

实现目的

使用D3.js开发的前端应用,用户与图交互更改图的内容后,如何在下一次加载的显示上一次最后交互的内容?

本文提供通过后端的Node.js程序提供一种最小化方案,作为参考。

开发环境

  • 后端:Node.js
  • Node.js模块:Express、body-parser、fs
  • 前端:JQuery

后端

1、安装nodejs,装好后用显示版本号确认是否安装好

node --version

2、新建一工程目录(文件夹),安装模块。

npm install express
npm install body-parser

Express 是一种Node.js Web 应用程序框架:http://expressjs.com/

bodyParser是用来解析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,证明结果正确。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jquery 可排列的表实现代码
Nov 13 Javascript
JS网页图片按比例自适应缩放实现方法
Jan 15 Javascript
jquery实现通用的内容渐显Tab选项卡效果
Sep 07 Javascript
利用Bootstrap实现表格复选框checkbox全选
Dec 21 Javascript
将jquery.qqFace.js表情转换成微信的字符码
Dec 01 jQuery
微信小程序支付功能 php后台对接完整代码分享
Jun 12 Javascript
微信小程序实现pdf、word等格式文件上传的方法
Sep 10 Javascript
vue中get请求如何传递数组参数的方法示例
Nov 08 Javascript
JavaScript实现简易聊天对话框(加滚动条)
Feb 10 Javascript
基于小程序请求接口wx.request封装的类axios请求
Jul 02 Javascript
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
手写实现JS中的new
Nov 07 Javascript
微信小程序 图片加载(本地,网路)实例详解
Mar 10 #Javascript
微信小程序 页面传值详解
Mar 10 #Javascript
详解Vue生命周期的示例
Mar 10 #Javascript
jQuery表格(Table)基本操作实例分析
Mar 10 #Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
Mar 10 #Javascript
微信小程序 出现47001 data format error原因解决办法
Mar 10 #Javascript
BootstrapValidator实现注册校验和登录错误提示效果
Mar 10 #Javascript
You might like
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
JS去除iframe滚动条的方法
2015/04/01 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
Js遍历键值对形式对象或Map形式的方法
2016/08/08 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
js精确的加减乘除实例
2017/11/14 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
解决pyttsx3无法封装的问题
2018/12/24 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
青年志愿者事迹材料
2014/02/07 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
职称评定个人总结
2015/03/05 职场文书
美丽的大脚观后感
2015/06/03 职场文书
python使用pymysql模块操作MySQL
2021/06/16 Python
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript