NodeJs的web開發

1、使用http模塊

      Nodejs不需要另外的HTTP服務器,因此減少了一層抽象,性能有了不少的提升,但同時也提高了開發難度,下面用一個post案例,來理解Nodeweb的運行流程

<span style="font-size:18px;"><form method="post" action="http://127.0.0.1:3000">
		<input type="text" name="title"/>
		<textarea name="text"></textarea>
		<input type="submit"/>
</form></span>
      這個表單包含兩個字段,title和text,提交的方式是post,將數據以post的方式提交給http://127.0.0.1:3000/。假設該案例的功能是將提交的數據原封不動的返回給頁面。

      則服務端的實現代碼如下:

var http = require('http');
var util = require('util');
var queryString =require('querystring');

http.createServer(function(req,res){
    var post ='';
    req.on('data',function(chunk){
        post+=chunk;
    });
    req.on('end',function(){

       post= queryString.parse(post);
       res.end(util.inspect(post));
       console.log(post);
    });
}).listen(3000);
實現效果如下:

客戶端:post數據

服務端返回的數據

也可以用這種方式返回數據

       post= queryString.parse(post);//查詢post數據
       res.write(post.title);
       res.write(post.text);
       res.end();//必須寫,否則無法返回
2、Express模塊

Express模塊是Nodejs作爲一個web框架,也是官方唯一推薦的一個框架,Express除了爲Http提供高層接口外,還實習了許多其他的功能。

2.1 路由控制

2.2模板解析支持

2.3動態視圖

2.4用戶會話

2.5CSRF保護

2.6靜態文件服務

2.7錯誤控制器

2.8訪問日誌

2.9緩存

2.10插件支持

下面用Express重新實現前面的例子

var express=require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser());
app.all('/',function(req,res){
    res.send(req.body.title+req.text);
    console.log(req.body.title);
});
app.listen(3000);

可以看到不需要req的監聽事件,只需要express.bodyParser(),就能直接通過req.body獲取post數據




發佈了22 篇原創文章 · 獲贊 9 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章