前言:自从决定转前端后,我的专业课java基本就弃了,后台开发的逻辑也基本忘得一干二净。但是作为一个准前端程序员,我觉得还是有必要了解一下后端开发的。虽然没有深入研究的必要,但是能够理解项目从前端到后端的整个流程,实现简单的业务逻辑(增删改查),应该对我们有所帮助。询问)。有用。NodeJS应该说是前端开发人员参与后端开发的最佳选择,因为它使用了前端熟悉的Javascript语言。一、什么是Node.jsNode.js是一个基于V8引擎的服务端Javascript运行环境。Javascript(简称JS,下同)从此可以开发后端应用。因为它使用了JS语言,所以自发布以来就受到了广大前端开发者的喜爱。许多前端开发者开始涉足后端开发,使用Node.js重构前端工具。Node.js通过非阻塞I/O流和事件驱动机制展示了其超高并发能力。此外,Node采用了高性能的V8引擎,提供了多种不同用途的API,并采用了全新的编译技术,实现了高性能的服务器。2.Node.js环境安装Node.js环境的安装非常简单。到官网http://nodejs.org/en/下载稳定版安装包,点击下一步安装。完成后可以打开CMD输入node-v查看是否安装成功:C:\Users\dawei>node-vv6.11.1如果出现node的版本号,说明安装成功。现在我们开始学习Nodejs。在Node.js中,很多功能被划分为模块(modules)。Node.js中的许多功能都是通过模块实现的。3.http模块HTTP模块用于创建服务器,接收和响应客户端请求。//1。引入http模块varhttp=require('http');//创建服务器varserver=http.createServer(function(req,res){//发送HTTP头//HTTP状态码:200:OK//设置HTTPheader,状态码为200,文件类型为html,字符集为utf-8res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});//发送相应数据res.write("HelloNode.js");//结束处理程序,返回数据res.end();});server.listen(8080);//监听端口//终端打印如下信息表示服务器已经启动console.log("Serverrunningathttp://127.0.0.1:8080/");这样我们就创建了一个完整的web服务器,可以通过http://127.0访问。0.1:8080访问服务器。回调函数中的req对象包含客户端请求的信息。可以使用req.url属性获取用户请求的URL地址。后期需要通过不同的url设计不同的路由。然后要识别这个URL,使用URL模块。4.URL模块URL模块提供了几种操作url的方法。url.parse(req.url):解析url,将url地址转换为url对象replaceroute1,url.parse()假设在上述代码段中引入了url模块url.parse(req.url),则会打印如下内容{protocol:null,slashes:null,auth:null,host:null,port:null,hostname:null,hash:null,search:null,query:null,pathname:'/',path:'/',href:'/'}因为我们只访问了根路径,所以content基本为空,很多情况下我们需要访问详情页并传参http://127.0.0.1:8080/login.html?uaername=dawei&pass=123{protocol:null,slashes:null,auth:null,host:null,port:null,hostname:null,hash:null,search:'?uaername=dawei&pass=123',query:'username=dawei&pass=123',pathname:'/login.html',path:'/login.html?uaername=dawei&pass=123',href:'/login.html?uaername=dawei&pass=123'}可以看到这个对象的query属性保存了我们的参数,也叫querystring。我们的访问路径保存在路径名属性中。这两个属性非常常用。我们经常需要获取参数信息,以便在服务器端做进一步的处理。在JS中,我们可以使用字符串拦截来获取参数,但是这里我们可以直接给parse方法传递一个参数true,将查询字符串转换为对象格式,获取起来非常方便。url.parse(req.url,true){protocol:null,slashes:null,auth:null,host:null,port:null,hostname:null,hash:null,search:'?username=dawei&pass=123',query:{username:'dawei',pass:'123'},pathname:'/login.html',path:'/login.html?username=dawei&pass=123',href:'/login.html?username=dawei&pass=123'}这样我们就可以轻松获取到参数的值了。2.url.resolve()a,添加路由vara=url.resolve('http://example.com/','/one');控制台日志(一);//http://example.com/com/oneb,替换路由varb=url.resolve('http://example.com/one','/two');console.log(b);//http://example.com/two
