文档详情

nodeJs图片上传例子.pdf

发布:2019-03-23约2.27万字共26页下载文档
文本预览下载声明
目 录 目标 功能模块分解 一个基础的http服务器 服务器简单分析 服务器如何处理请求 对请求进行路由选择 路由到处理程序 一种不好的实现方式 阻塞与非阻塞 非阻塞方式对请求进行响应 更有用的场景 处理文件上传 该实例有关的技术点 : 本文档使用 看云 构建 - 2 - 目标 目标 1. 在浏览器地址栏输入 “http//demos/start” ,进入欢迎页面 ,页面有一个文件上传表单 ; 2. 选择一张图片并提交表单 ,文件被上传到http//demos/uploads上传完成把该图片显示在页面上。 本文档使用 看云 构建 - 3 - 功能模块分解 功能模块分解 1. 需要提供欢迎页 ,所以需要一个http服务器 ; 2. 对于不同请求 ,根据url ,服务器能给与不同响应 ,需要路由 ,把请求对应到相应的请求处理程序 (request handler ) 3. 需要请求处理程序 ; 4. 路由处理post数据 ,并把数据封装成更加友好的格式传递给处理程序 ,需要数据处理功能 ; 5. 需要视图逻辑供请求处理程序使用 ,以便将结果返回给浏览器 ; 6. 需要上传处理功能处理上传细节。 如果是php实现 ,我们需要apache http服务器并配置mod_php5模块 ,那么整个 “接收请求并回复 “并不需要 php来做。而使用nodejs ,不仅仅是实现应用 ,同时还实现了http服务器。 本文档使用 看云 构建 - 4 - 一个基础的http服务器 一个基础的http服务器 nodejs支持模块化 ,有利于编写干净的代码。除了内置的模块 ,我们可以将自己的不同功能的代码放进不同模块 中 ,说白了就是写在不同文件中。 创建js文件取名server.js ,写入代码如下 : var http require(http); http.createServer(function(req,res){ res.writeHead(200,{Content-Type:text/html}); res.write( Node.js ); res.end(); }).listen(3000,); 执行 node server.js 浏览器输入http//localhost 3000 ,显示”Node.js “。 本文档使用 看云 构建 - 5 - 服务器简单分析 服务器简单分析 第一行 ,require请求nodejs内置的http模块 ,赋给http变量 ;接着调用http模块的createServer方法 ,返回一个 对象 ,这个对象有一个叫做listen的方法 ,这个方法的参数指定http服务器监听的端口号。createServer方法的匿 名函数是该方法仅仅需要的一个参数 ,js中函数和变量一样可以传递。 使用这种方式是因为nodejs是事件驱动的。 当我们使用php时 ,任何时候每当有请求进入 ,apache就为这一新请求新建一个进程 ,并从头到尾的执行php脚 本。htpp.createServer不仅仅是建一个侦听某端口的服务器 ,我们还想要他在收到http请求时做点什么。而 nodejs是异步的 :请求任何时候都可能到达 ,但是他却跑在一个单进程中。 当一个请求到达3000端口时怎么控制流程呢 ?这时候nodejs/javascript的事件驱动机制派上用场了。 我们向创建服务器的方法传递了一个函数 ,任何时候服务器收到请求 ,这个函数就会被调用 ,被用作处理请求的 的地方。 本文档使用 看云 构建 - 6 - 服务器如何处理请
显示全部
相似文档