APNs功能之Node.js和Mysql应用总结
2014-01-27 10:15
627 查看
APNs功能之Node.js和Mysql应用总结
这篇文档主要是总结Node.js和Mysql的学习心得体会。当然也可以看作是此前所写的消息推送服务的续篇。
简单描述下应用背景,我们的应用需要实现苹果的消息推送服务APNs,之前已经实现了iOS客户端配置和功能代码,也实现了推送通知的本地Provider功能代码,具体参考此前的系列总结。好比一个三角形,A点代表iOS移动设备端,B点代表苹果的消息推送服务器,C点代表应用开发者的本地服务器,现在A和B连接好了,B和C也连接好了,就差A和
B建立连接沟通。
这样一来,很明显就是要在本地搭建一个服务器了,可以处理A发送的请求;当然也少不了数据库,用来存储相关数据。
说到这里,不同技术背景的人会有不同的方案,在此我采用了Node.js+Mysql的解决方案。当然其他方案如ASN.NET、JSP、PHP加上SQLServer、Mysql、MongoDB等等就不谈论了。纯粹作为技术学习和新方案的尝试。
Node.js
作为这篇文档的重点内容,Node.js肯定是要优先总结的。
我这种刚学习Node.js的新手,就不敢把此文当做Node.js的入门资料了,只是简单介绍一下,然后直接根据应用需求实现代码。
Node.js实现了服务端Javascript,通过简单快捷的环境搭建,就可以实现一个运行Javascript的服务器。
1、 去官网下载最新的Node.js安装程序。说明一下,我是在Windows32位操作系统上安装,所以下载Windows对应安装程序即可。我的版本为:node-v0.10.24-x86。
2、 安装Node.js。
3、 在开始—>所有程序中,找到Node.js的命令行程序Node.js command prompt并运行
好了,至此,你已经可以开始编程了。就是这么简单快捷。
或许很多人还是很困惑,那在哪里写代码呢,命令行?
在此,我要说一下刚接触时候我的感受:我觉得很郁闷,不知道从何入手。
对于很多新手,大家需要的是把事情说明白一点,而不是玄乎。可以这样理解,Node.js就是一个服务器,用于搭载Javascript、CSS、Html等网页所可以有的一切。但是他本身不集成IDE。再具体点,他的出现,使我们可以不用熟悉的IIS、Apache、Tomcat来部署了,只需要运行Node.js,然后通过一句话“node xxx.js”,加载已经写好的Javascript,就一切OK了。是的,Javascript,那用你熟悉的任何方式和工具去书写吧。Notepad++是我选择的工具。
一定还有疑惑,没关系,我们先来看实例。
下列实例实现一个可以上传图片文件并预览的页面,还有一个向数据库插入一条数据的请求。
先看这个例子NodejsDemo的文件夹结构
View Code
说明:这个js实现向数据库里面插入一条记录,如果已存在该用户,则更新用户信息。就是这样的熟悉味道。
忘了一点,我没有封装这个demo的数据库连接,因为当操作多了以后,还是封装一个负责数据库连接操作的DBHelper比较好。
到此,Node.js的总结就结束了,别忘了重新node index.js后,在浏览器里面访问“Your IP : Your port/sendMyInfo?name=xxx&country=xxx&city=xxx&street=xxx”。
这篇文档主要是总结Node.js和Mysql的学习心得体会。当然也可以看作是此前所写的消息推送服务的续篇。
简单描述下应用背景,我们的应用需要实现苹果的消息推送服务APNs,之前已经实现了iOS客户端配置和功能代码,也实现了推送通知的本地Provider功能代码,具体参考此前的系列总结。好比一个三角形,A点代表iOS移动设备端,B点代表苹果的消息推送服务器,C点代表应用开发者的本地服务器,现在A和B连接好了,B和C也连接好了,就差A和
B建立连接沟通。
这样一来,很明显就是要在本地搭建一个服务器了,可以处理A发送的请求;当然也少不了数据库,用来存储相关数据。
说到这里,不同技术背景的人会有不同的方案,在此我采用了Node.js+Mysql的解决方案。当然其他方案如ASN.NET、JSP、PHP加上SQLServer、Mysql、MongoDB等等就不谈论了。纯粹作为技术学习和新方案的尝试。
Node.js
作为这篇文档的重点内容,Node.js肯定是要优先总结的。
我这种刚学习Node.js的新手,就不敢把此文当做Node.js的入门资料了,只是简单介绍一下,然后直接根据应用需求实现代码。
Node.js实现了服务端Javascript,通过简单快捷的环境搭建,就可以实现一个运行Javascript的服务器。
1、 去官网下载最新的Node.js安装程序。说明一下,我是在Windows32位操作系统上安装,所以下载Windows对应安装程序即可。我的版本为:node-v0.10.24-x86。
2、 安装Node.js。
3、 在开始—>所有程序中,找到Node.js的命令行程序Node.js command prompt并运行
好了,至此,你已经可以开始编程了。就是这么简单快捷。
或许很多人还是很困惑,那在哪里写代码呢,命令行?
在此,我要说一下刚接触时候我的感受:我觉得很郁闷,不知道从何入手。
对于很多新手,大家需要的是把事情说明白一点,而不是玄乎。可以这样理解,Node.js就是一个服务器,用于搭载Javascript、CSS、Html等网页所可以有的一切。但是他本身不集成IDE。再具体点,他的出现,使我们可以不用熟悉的IIS、Apache、Tomcat来部署了,只需要运行Node.js,然后通过一句话“node xxx.js”,加载已经写好的Javascript,就一切OK了。是的,Javascript,那用你熟悉的任何方式和工具去书写吧。Notepad++是我选择的工具。
一定还有疑惑,没关系,我们先来看实例。
下列实例实现一个可以上传图片文件并预览的页面,还有一个向数据库插入一条数据的请求。
先看这个例子NodejsDemo的文件夹结构
var mysql = require('mysql'); var db_options = { host: "localhost", port: 3306, user: "root", password: "Your password" }; //database name var DATABASE = ‘NodeJsTest’, //table name TABLE = 'Users'; function storeUserInfo(user, res){ if(user.name == " "){ res.writeHead (600, {"Content-Type": "text/plain"}); res.write ("error: name can not be empty.\n"); res.end(); return; } var client = new mysql.createConnection(db_options); client.query('USE '+DATABASE); client.query( "SELECT * FROM "+ TABLE + " WHERE name = ?", [user.name], function(err, results, fields) { if (err) { client.end(); res.writeHead (700, {"Content-Type": "text/plain"}); res.write ("error: " + err); res.end(); return; } console.log(results.length); if(results.length < 1){ //Added new record client.query( "INSERT INTO "+ TABLE + " SET name = ?, country = ?, city = ?, street = ? ", [user.name, user.country, user.city, user.street], function(err, results, fields) { if (err) { client.end(); res.writeHead (700, {"Content-Type": "text/plain"}); res.write ("error: " + err); res.end(); return; } client.end(); res.writeHead (200, {"Content-Type": "text/plain"}); res.write ("added new user"); res.end(); console.log(results); console.log(fields); } ); }else if(results.length == 1){ //Update record client.query( "UPDATE " + TABLE + " SET name = ?, country = ?, city = ?, street = ? WHERE name = ?", [user.name], function(err, results, fields) { if (err) { client.end(); res.writeHead (700, {"Content-Type": "text/plain"}); res.write ("error: " + err); res.end(); return; } client.end(); res.writeHead (200, {"Content-Type": "text/plain"}); res.write ("updated"); res.end(); console.log(results); console.log(fields); } ) }else{ client.end(); res.writeHead (700, {"Content-Type": "text/plain"}); res.write ("error: Repeat records exist!"); res.end(); console.log("Repeat records exist!"); //handle } } ); } exports.storeUserInfo = storeUserInfo;
View Code
说明:这个js实现向数据库里面插入一条记录,如果已存在该用户,则更新用户信息。就是这样的熟悉味道。
忘了一点,我没有封装这个demo的数据库连接,因为当操作多了以后,还是封装一个负责数据库连接操作的DBHelper比较好。
到此,Node.js的总结就结束了,别忘了重新node index.js后,在浏览器里面访问“Your IP : Your port/sendMyInfo?name=xxx&country=xxx&city=xxx&street=xxx”。
相关文章推荐
- Node.js+Express+MySql实现用户登录注册功能
- node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
- 华为云centos7上部署node.js应用,部署redis和mysql,使用forever守护node.js进程
- 【京东个人中心】——Nodejs/Ajax/HTML5/Mysql爬坑之功能与数据分析
- 功能总结--mysql、String字符串函数的应用及mybatis的批量更新不同字段
- nodejs学习——应用nodejs+express+mysql构建简易web应用服务端
- node.js的generic-pool与mysql结合,mysql连接池
- 基于Nodejs+Angular+Bootstrap+MySQL的Admin
- NodeJs session中间件 及应用(简单的登录与登出)
- Node.js 创建第一个应用
- 安装node.js,CoffeeScript,Express.js,mysql,jade
- 利用adb shell和node.js实现抖音自动抢红包功能(推荐)
- node.js都应用在什么项目上?这些项目为什么选择node.js
- Node.js企业开发: 二应用开发
- centos环境配置(nginx,node.js,mysql)
- node.js爬虫应用——前端程序员的词典command-translator
- 零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
- 学习Node.js遇到的一些知识的总结
- node.js+mysql学习笔记
- [Node.js与数据库]node-mysql 模块介绍