apns功能之node.js和mysql应用总结

上传人:自*** 文档编号:80516715 上传时间:2019-02-19 格式:DOC 页数:18 大小:204.80KB
返回 下载 相关 举报
apns功能之node.js和mysql应用总结_第1页
第1页 / 共18页
apns功能之node.js和mysql应用总结_第2页
第2页 / 共18页
apns功能之node.js和mysql应用总结_第3页
第3页 / 共18页
apns功能之node.js和mysql应用总结_第4页
第4页 / 共18页
apns功能之node.js和mysql应用总结_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《apns功能之node.js和mysql应用总结》由会员分享,可在线阅读,更多相关《apns功能之node.js和mysql应用总结(18页珍藏版)》请在金锄头文库上搜索。

1、这篇文档主要是总结Node.js和Mysql的学习心得体会。当然也可以看作是此前所写的消息推送服务的续篇。 简单描述下应用背景,我们的应用需要实现苹果的消息推送服务APNs,之前已经实现了iOS客户端配置和功能代码,也实现了推送通知的本地Provider功能代码,具体参考此前的系列总结。好比一个三角形,A点代表iOS移动设备端,B点代表苹果的消息推送服务器,C点代表应用开发者的本地服务器,现在A和B连接好了,B和C也连接好了,就差A和B建立连接沟通。 这样一来,很明显就是要在本地搭建一个服务器了,可以处理A发送的请求;当然也少不了数据库,用来存储相关数据。 说到这里,不同技术背景的人会有不同的

2、方案,在此我采用了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安装程序。说明一下,我是在Windows

3、32位操作系统上安装,所以下载Windows对应安装程序即可。我的版本为:node-v0.10.24-x86。2、 安装Node.js。3、 在开始所有程序中,找到Node.js的命令行程序Node.js command prompt并运行好了,至此,你已经可以开始编程了。就是这么简单快捷。或许很多人还是很困惑,那在哪里写代码呢,命令行?在此,我要说一下刚接触时候我的感受:我觉得很郁闷,不知道从何入手。对于很多新手,大家需要的是把事情说明白一点,而不是玄乎。可以这样理解,Node.js就是一个服务器,用于搭载Javascript、CSS、Html等网页所可以有的一切。但是他本身不集成IDE。再

4、具体点,他的出现,使我们可以不用熟悉的IIS、Apache、Tomcat来部署了,只需要运行Node.js,然后通过一句话“node xxx.js”,加载已经写好的Javascript,就一切OK了。是的,Javascript,那用你熟悉的任何方式和工具去书写吧。Notepad+是我选择的工具。一定还有疑惑,没关系,我们先来看实例。下列实例实现一个可以上传图片文件并预览的页面,还有一个向数据库插入一条数据的请求。先看这个例子NodejsDemo的文件夹结构说明:index.js是入口,server.js用于启动服务,router.js用于路由请求,requesHandlers.js用于处理路由

5、后的对应请求,mysqlOperation.js用于处理数据库操作,mysqlDBHelper.js用于连接数据库并操作接下就是具体代码部分了,太多语法我无法一下说清楚,在需要的地方,我会稍加说明,想了解更多,建议去官网查看API说明,毕竟是抛砖引玉哈。 Index.js的代码: 1 var server = require(./server); 2 3 var router = require(./router); 4 5 var requestHandlers = require(./requestHandlers); 6 7 8 9 var handle = 10 11 handle/

6、 = requestHandlers.start;12 13 handle/start = requestHandlers.start;14 15 handle/upload = requestHandlers.upload;16 17 handle/show = requestHandlers.show;18 19 handle/sendMyInfo = requestHandlers.sendMyInfo;20 21 22 23 server.start(router.route, handle);View Code 说明:这是示例的入口,最后一句,调用server中的start方法,并传

7、递两个参数,第一个是router中route函数,第二个是类似字典实例的handle。 server.js的代码: 1 var http = require(http); 2 3 var url = require(url); 4 5 function start(route, handle) 6 7 function onRequest(req,res) 8 9 var pathname = url.parse(req.url).pathname;10 11 console.log(Request for + pathname + received.);12 13 14 15 route(h

8、andle, pathname, res,req); 16 17 18 19 http.createServer(onRequest).listen(1337, Your IP);20 21 console.log(Server running at http:/Your IP:1337/);22 23 24 25 26 27 exports.start = start;View Code 说明:与require(“./server”)调用同级目录js文件不同,require(http)是生成一个http对象实例的方法。url.parse(string).pathname用于获取url字符串中

9、路径名称。Your IP为本机的IP地址。http.createServer(function).listen(端口号,IP)用于通过一个方法创建一个服务,并在设置的iP和端口号监听。Exports.start=start为其他js对象调用本方法暴露接口。route.js的代码 1 function route(handle, pathname, res, req) 2 3 console.log(About to route a request for + pathname); 4 http:/ 5 if(typeof handlepathname = function) 6 7 handl

10、epathname(res, req); 8 9 else10 11 console.log(No request handler found for + pathname);12 13 res.writeHead(404, Content-Type: text/plain);14 15 res.end(404 route not found);16 17 18 19 20 21 22 23 exports.route = route;View Code 说明:路由请求,当请求未定义的路径时,则在response的head里面返回404错误。requestHanlders.js的代码: 1 v

11、ar querystring = require (querystring); 2 3 var url = require(url); 4 5 var fs = require(fs); 6 7 var formidable = require(formidable); 8 9 var util = require(util); 10 11 var mysqlOperation = require(./mysqlOperation); 12 13 var testPicPath = /testPic/test.png; 14 15 function start(res, req) 16 17 console.log(Request handler start was called.); 18 19 var body = + 20 21 + 22 23 + 26 27 + 28 29 + 30 31 + 32 33 + 34 35 + 36 37 + 38 39 + 40 41 ; 42 43 res.writeHead(200, Content-Type: text/ht

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号