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 相关文章推荐
原生js实现跨浏览器获取鼠标按键的值
Apr 08 Javascript
JQuery radio(单选按钮)操作方法汇总
Apr 15 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
Apr 03 Javascript
JS获取子窗口中返回的数据实现方法
May 28 Javascript
jQuery实现鼠标跟随效果
Feb 20 Javascript
JavaScript实现经纬度转换成地址功能
Mar 28 Javascript
JS实现提交表单前的数字及邮箱校检功能
Nov 13 Javascript
解决vue的变量在settimeout内部效果失效的问题
Aug 30 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
Dec 10 Javascript
微信小程序webview实现长按点击识别二维码功能示例
Jan 24 Javascript
vue路由中前进后退的一些事儿
May 18 Javascript
vuex存储token示例
Nov 11 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开发框架总结收藏
2008/04/24 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
2019/10/16 PHP
js 动态加载事件的几种方法总结
2013/12/25 Javascript
js验证上传图片的方法
2015/05/12 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
AngularJS 最常用的功能汇总
2016/02/17 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
Python中非常实用的一些功能和函数分享
2015/02/14 Python
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
python字符串连接方法分析
2016/04/12 Python
python thrift搭建服务端和客户端测试程序
2018/01/17 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
Stuart Weitzman美国官网:美国奢华鞋履品牌
2016/08/18 全球购物
FragranceNet中文网:北美健康美容线上零售商
2020/08/26 全球购物
社会实践自我鉴定
2013/11/07 职场文书
会议开场欢迎词
2014/01/15 职场文书
艺术学院毕业生自荐信
2014/07/05 职场文书
2015员工年度考核评语
2015/03/25 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
小学毕业感言100字
2015/07/30 职场文书
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers