首页IT科技nodejs快速入门(Node.js基础入门第八天)

nodejs快速入门(Node.js基础入门第八天)

时间2025-06-20 22:23:40分类IT科技浏览5101
导读:经过前面七天的学习,对Node.js开发已经有了一个初步的认识,今天继续学习Node.js在web开发参数传递相关内容,仅供学习分享使用,如有不足之处,还请指正。...

经过前面七天的学习            ,对Node.js开发已经有了一个初步的认识                  ,今天继续学习Node.js在web开发参数传递相关内容      ,仅供学习分享使用      ,如有不足之处                  ,还请指正            。

参数传递方式

在Node.js中            ,参数传递常见的共两种方式:

GET方式:通过地址栏键=值的方式进行传递                  。 POST方式:通过表单的方式传递请求数据      。

GET方式

GET方式通常是在请求地址中以【?参数1=值1&参数2=值2】的格式进行传递      ,在Node.js中可以通过获取url然后进行获取参数                  ,如下所示:

运行示例            ,在浏览器中打开,如下所示:

POST方式

目前一般采用form表单的方式传递POST数据      。在Node.js中                  ,POST传递的数据在请求体中                  。

首先创建一个reg.html静态html页面                  ,然后提交数据到action.html,具体如下所示:

1 //1.引入http模块 2 var http = require(http); 3 var fs = require(fs); 4 var path = require(path); 5 //2.创建服务 6 var server = http.createServer(); 7 var extnames = {".html":"text/html",".css":"text/css",".png":"image/png"}; 8 //3. 监听请求事件,当有请求时            ,触发回调函数 9 server.on(request,function(req,res){ 10 var url=req.url; 11 if(url==="/"){ 12 url="/index.html"; 13 } 14 var localPath = ./www+url; 15 var extname = path.extname(localPath); 16 res.writeHead(200,{"content-type":""+extnames[extname]+";charset=utf-8"}); 17 if(url==="/action.html"){ 18 //从请求主体中获取POST方式传输的数据 19 var params=; 20 req.on(data,function(data){ 21 params += data.toString(); 22 }); 23 //监听结束事件 24 req.on(end,function(){ 25 res.write("<h3>后台已经收到请求:</h3>"); 26 res.write(params); 27 res.end(); 28 29 }); 30 return; 31 } 32 33 console.log(localPath); 34 if(extname===".ico"){ 35 res.end(); 36 }else{ 37 fs.readFile(localPath,function(err,data){ 38 res.write(data); 39 res.end(); 40 }); 41 } 42 }); 43 44 //4. 监听8080端口 45 server.listen(8080,function(){ 46 console.log("server is running"); 47 });

运行服务                  ,然后在浏览器输入网址      ,如下所示:

注意:可以看出            ,GET方式和POST方式的参数结构都是一样的                  ,只是GET通过URL      ,POST通过请求主体            。

动态网页

在之前的示例中      ,所有的html页面都是静态页面                  ,不会随着用户请求的变化而变化      。那如何动态的变更网页呢?答案是采用模板                  。

首先创建一个html页面            ,并在页面中定义一个变量            。如下所示:

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>这是首页</title> 6 <link type="text/css" href="css/index.css" /> 7 </head> 8 <body> 9 <h3>这是首页</h3> 10 <h3>你的访问IP为:</h3> 11 <h3><%=ipAddr%></h3> 12 </body> 13 </html>

然后在Node.js后端程序中      ,动态获取变量的值                  ,并进行替换            ,如下所示:

1 var http = require(http); 2 var fs = require(fs); 3 var path = require(path); 4 //2.创建服务 5 var server = http.createServer(); 6 var extnames = {".html":"text/html",".css":"text/css",".png":"image/png"}; 7 //3. 监听请求事件,当有请求时,触发回调函数 8 server.on(request,function(req,res){ 9 var url=req.url; 10 if(url==="/"){ 11 url="/index.html"; 12 } 13 var localPath = ./www+url; 14 var extname = path.extname(localPath); 15 res.writeHead(200,{"content-type":""+extnames[extname]+";charset=utf-8"}); 16 console.log(localPath); 17 if(extname===".ico"){ 18 res.end(); 19 }else{ 20 fs.readFile(localPath,function(err,data){ 21 var ip = req.socket.remoteAddress; 22 var content = render(data.toString(),<%=ipAddr%>,ip); 23 res.write(content); 24 res.end(); 25 }); 26 } 27 }); 28 29 //4. 监听8080端口 30 server.listen(8080,function(){ 31 console.log("server is running"); 32 }); 33 34 function render(html,name,value){ 35 return html.replace(name,value); 36 }

运行示例                  ,在浏览器中输入http://http://127.0.0.1:8080/                  ,如下所示:

注意:IP为客户端IP,随着访问的客户端电脑而改变。

以上示例都是Node.js的原生开发方式            ,存在诸多不便                  ,后面将通过引入框架来提高开发的效率                  。

备注

梁州故人【作者】韦应物【朝代】唐

江汉曾为客      ,相逢每醉还                  。

浮云一别后            ,流水十年间。

欢笑情如旧                  ,萧疏鬓已斑            。

何因不归去      ,淮上有秋山                  。
声明:本站所有文章      ,如无特殊说明或标注                  ,均为本站原创发布      。任何个人或组织            ,在未征得本站同意时      ,禁止复制            、盗用                  、采集      、发布本站内容到任何网站      、书籍等各类媒体平台            。如若本站内容侵犯了原著者的合法权益                  ,可联系我们进行处理                  。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
双系统怎么修改启动顺序(如何修改变双系统的启动顺序(win2003/win2008))