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中 javascript:void(0) 用法详解
Aug 11 Javascript
Vue.js每天必学之数据双向绑定
Sep 05 Javascript
Bootstrap输入框组件使用详解
Jun 09 Javascript
vue.js实现刷新当前页面的方法教程
Jul 05 Javascript
手机注册发送验证码倒计时的简单实例
Nov 15 Javascript
详解angular如何调用HTML字符串的方法
Jun 30 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 jQuery
JavaScript如何获取一个元素的样式信息
Jul 29 Javascript
使用localStorage替代cookie做本地存储
Sep 25 Javascript
JavaScript对象字面量和构造函数原理与用法详解
Apr 18 Javascript
uniapp实现可滑动选项卡
Oct 21 Javascript
微信小程序实现购物车小功能
Dec 30 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
文件上传程序的全部源码
2006/10/09 PHP
php json_encode值中大括号与花括号区别
2013/09/30 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
JS创建类和对象的两种不同方式
2014/08/08 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
PyTorch实现AlexNet示例
2020/01/14 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
编程实现去掉XML的重复结点
2014/05/28 面试题
品质主管的岗位职责
2013/12/04 职场文书
三下乡活动方案
2014/01/31 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
工作收入住址证明
2014/10/28 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书