Node.js实践第一天

实践案例一 表单提交php

  demo.htmlhtml

 1 <!doctype html>
 2 <html>
 3     <head>
 4         <title>表单提交</title>
 5     </head>
 6 <body>
 7     <form method="post" action="http://localhost:3000/">
 8         姓名:<input type="text" name="title" /><br/><br/><br/>
 9         备注:<textarea name="text"></textarea><br/>
10         <input type="submit"/>
11     </form>
12 </body>
13 </html>

postdata.jsnode

 1 //post  form 
 2 
 3 var http = require('http');
 4 var querystring = require('querystring');
 5 
 6 var server = http.createServer(function(req,res){
 7     var post = '';
 8     
 9     req.on('data',function(chunk){
10         post += chunk;
11     });
12     
13     req.on('end',function(){
14         post = querystring.parse(post);
15         
16         res.write(post.title);
17         res.write(post.text);
18         res.end();
19     });
20 }).listen(3000);

在使用dos窗口运行js的时候记得把http,querystring两个模块使用npm install -g xxx到本地。web

cd到上述文件的目录,运行命令express

  node postdata.jsnpm

  运行效果图缓存

    

  提交结果显示界面服务器

    

 思考:PHP获取POST提交的数据并将数据返回给用户,仅仅写两行代码,闭包

  echo $_POST['title'];app

  echo $_GET['text'];

  而Node.js完成以上工做须要先建立一个HTTP实例,手动编写req对象的事件监听器,当客户端数据到达时,将POST数据暂时存在闭包的变量中,直到end事件触发,解析post请求,处理后返回到客户端。php之因此简单,是由于它已将这些功能封装好了,只提供了一个高层的接口。此处实例虽然直接使用了http模块,可是却不是让你直接使用这个模块进行web开发,http模块仅仅是一个HTTP服务器内核的封装,你能够用它作任何HTTP服务器能作的事情,不单单是作一个网站,甚至实现一个HTTP代理服务器。若是直接使用这种方法开发网站,必须手动实现全部东西。

Express 框架  一个轻量级的Web框架

  npm 提供了大量的第三方模块,其中Express做为开发框架,是目前最稳定的、使用最普遍的框架。

  Express(http://expressjs.com/)除了为http模块提供了更高层的接口外,还实现了许多功能,其中包括:路由控制,模板解析支持,动态视图,用户会话,CSRF保护,静态文件服务,错误控制器,访问日志,缓存,插件支持等,多数功能只是对HTTP协议中经常使用的操做封装,更多的功能须要插件或者整合其余模块来完成。

实现与以前相同的例子。

var express = require('express');

var app = express.createServer();
app.use(express.bodyParser());
app.all('/',function(req,res){
    res.send(req.body.title+req.body.text);
});

app.listen(3000);
相关文章
相关标签/搜索