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);
相關文章
相關標籤/搜索