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 相关文章推荐
javascript 尚未实现错误解决办法
Nov 27 Javascript
浏览器的JavaScript引擎的识别方法
Oct 20 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
Jan 25 Javascript
浅谈javascript中的constructor
Jun 08 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
Jun 22 Javascript
JS+jQuery实现注册信息的验证功能
Sep 26 jQuery
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
Oct 23 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
Apr 23 jQuery
ES6 Object方法扩展的应用实例分析
Jun 25 Javascript
js实现飞机大战小游戏
Aug 26 Javascript
jQuery列表动态增加和删除的实现方法
Nov 05 jQuery
五句话帮你轻松搞定js原型链
Dec 09 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中单双引号的误区和双引号小隐患
2016/07/19 PHP
BOOM vs RR BO3 第二场2.13
2021/03/10 DOTA
javascript getElementsByName()的用法说明
2009/07/31 Javascript
jQuery 1.5最新版本的改进细节分析
2011/01/19 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
jquery动态添加option示例
2013/12/30 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
[00:09]DOTA2新版本PA至宝特效动作展示
2014/11/19 DOTA
[00:58]PWL开团时刻DAY5——十人开雾0换5
2020/11/04 DOTA
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
python实现微信远程控制电脑
2018/02/22 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
python 实现波浪滤镜特效
2020/12/02 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
奥巴马的演讲稿
2014/05/15 职场文书
技校毕业生自荐书
2014/05/23 职场文书
单位证明范文
2015/06/18 职场文书
计算机教师工作总结
2015/08/13 职场文书
Python竟然能剪辑视频
2021/05/25 Python