这段代码与上段代码项目,主要有的几个变化是:
不再引入url模块, 改用引入querystring模块。因为我们不再对URL进行操作了,也没必要引入了;
使用request.method.toLowerCase()=='post'判断当前是否有数据提交;
在data事件进行数据的拼接,在end事件中进行的处理;
response.end()写在了end事件内部,因为end事件是异步操作,因此必须得数据输出完成之后才能执行response.end()
我们在控制台中可以看出,postData是这样的一个字符串:
因此我们使用query.parse将postData解析为对象类型,以便获取提交过来的数据。
三、路由
现在我们所有的逻辑都是在根目录下进行的,没有按照url区分,这里我们按照功能进行路由拆分。以上面的post请求为例,我们可以拆分为:页面初始化和form提交后的处理。
页面初始化:
展示获取的数据:
然后在server.js中进行路由选择
我们任意改变URL地址,会看到输出的每个地址的pathname(忽略/favicon.ico):
因此我们就根据pathname进行路由,对路由进行方法映射:
如果匹配到路由 / ,则执行 starter.start(request, response) ;如果匹配到路由 /show ,则执行 uploader.upload(request, response) 。如果都没匹配到,则显示404。
四、图片上传并显示
在上面我们已经能成功提交数据了,这里来讲解如何进行图片上传并显示。使用node自带的模块处理起来非常的麻烦,这里我们使用别人已经开发好的formidable模块进行编写,它对解析上传的文件数据做了很好的抽象。
在starter.js中,我们添加上file控件:
4.1 图片上传
首先我们进行的是图片上传操作,首先我们要确保当前目录中存在tmp和img目录。
在 uploader.js 中:
我们上传图片后跳转到upload路径,然后显示出相应的信息:
我们再查看img目录时,就会发现我们刚才上传的照片了。
4.2 图片显示
将图片上传到服务器后,怎样才能把图片显示在浏览器上呢。cmd打开文件夹这里我们就使用到了fs模块来读取文件,创建一个shower.js来专门展示图片:
然后在 server.js 中添加上 show 的路由映射:
最后在 upload.js 中进行图片的引用:
五、综合
刚才学习了上传数据和上传图片,这里我们将其综合一下,拟定一个题目:“设定用户名密码,并上传头像”。希望可以自己实现一下。
六、接口的实现
在第2部分学习了GET和POST请求,那么在这里写一个简单json或jsonp接口应该不是什么难事儿了吧。
创建一个 inter.js :
在server中添加inter的引用和路由映射:
然后对 :3000/inter 进行json请求或jsonp请求即可。
为大家提供一个查询API的中文地址:https://pinggod.gitbooks.io/nodejs-doc-in-chinese/content
总结
好了,以上就是这篇文章的全部内容了,这节还是写了不少的内容,最核心的就是讲解如何搭建一个简单的http服务器,进行数据和图片的提交与处理,在最后稍微讲了下接口的编写,后面有机会的话,会再具体讲解下接口的编写。下面会和大家分享node之文件操作,请大家继续关注梦搏网络。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-66745-6.html
实在不行拍拍屈股跑路
哈
想骗钱么就明说了