fred: 使用 NodeJS + Express 從 GET/POST Request 取值

标签: fred nodejs express | 发表时间:2012-02-01 13:42 | 作者:[email protected] (Fred Chien(錢逢祥))
出处:http://planet.debian.org.tw/
過去無論哪一種網站應用程式的開發語言,初學者教學中第一次會提到的起手式,八九不離十就是 GET/POST Request 的取值。但是,在 Node.js + Express 的世界中,彷彿人人是高手,天生就會使用,從不曾看到有人撰文說明。

這應該算是開發 Web Service 的入門,在 Client 與 Server 的互動中,瀏覽器發出 GET/POST Request 時會傳值給 Server-side,常見應用就是網頁上以 POST method 送出的表單內容,或是網址列上的 Query Strings (ex: page?page=3&id=5)。然後,我們的網站應用程式透過解析這些參數,得到使用者上傳的資訊。

取得 GET Request 的 Query Strings:
GET /test?name=fred&tel=0926xxx572
app.get('/test', function(req, res) {   
    console.log(req.query.name);
    console.log(req.query.tel);
});

如果是透過表單且是用 POST method:
<form action='/test' method='post'>   
<input type='text' name='name' value='fred'>
<input type='text' name='tel' value='0926xxx572'>
<input type='submit' value='Submit'>
</form>
app.post('/test', function(req, res) {   
    console.log(req.body.name);
    console.log(req.body.tel);
});

當然也可以 Query Strings 和 POST method 的表單同時使用:
<form action='/test?id=3' method='post'>   
<input type='text' name='name' value='fred'>
<input type='text' name='tel' value='0926xxx572'>
<input type='submit' value='Submit'>
</form>
app.post('/test', function(req, res) {   
    console.log(req.query.id);
    console.log(req.body.name);
    console.log(req.body.tel);
});


順帶補充,還有另一種方法傳遞參數給 Server,就是使用路徑的方式,可以利用 Web Server 的 HTTP Routing 來解析,常見於的各種 Web Framework。這不算是傳統標準規範的做法,是屬於 HTTP Routing 的延伸應用。
GET /hello/fred/0926xxx572
app.get('/hello/:name/:tel', function(req, res) {   
    console.log(req.params.name);
    console.log(req.params.tel);
});


後記

筆者最近收到網友 $10 USD 的贊助,這對持續在網路上經營寫作,是莫大的股舞,由衷感謝!

相关 [fred nodejs express] 推荐:

fred: 使用 NodeJS + Express 從 GET/POST Request 取值

- - Planet DebianTW
過去無論哪一種網站應用程式的開發語言,初學者教學中第一次會提到的起手式,八九不離十就是 GET/POST Request 的取值. 但是,在 Node.js + Express 的世界中,彷彿人人是高手,天生就會使用,從不曾看到有人撰文說明. 這應該算是開發 Web Service 的入門,在 Client 與 Server 的互動中,瀏覽器發出 GET/POST Request 時會傳值給 Server-side,常見應用就是網頁上以 POST method 送出的表單內容,或是網址列上的 Query Strings (ex: page?page=3&id=5).

無痛安裝 NodeJS 和 Node Framework Express

- Hming - 小惡魔 - 電腦技術 - 工作筆記 - AppleBOY
直接到官網下載 Stable 的版本吧,目前是 node-v0.4.10.tar.gz,也可以先看看 API Document. 安裝 Ububtu 相關套件. 下面會使用最原始的編譯方式,所以必須安裝 g++ 套件,否則下 ./configure 的時候,會吐出來沒有安裝過的套件. 兩種方法:1.用 apt-get install nodejs 2.

TWaver html5 + NodeJS + express + websocket.io + redis 快速搭建项目(一)

- - BlogJava-首页技术区
     摘要: TWaver的html5版本即将发布了,于是今天用TWaver HTML5 + NodeJS + express + websocket.io + redis搭建了一个简单原型. 界面添加、修改以及删除网元后,会自动增量存库,并广播更新. TWaver 2011-12-16 16:30 发表评论.

使用js服务端语言nodejs和express建个人站点

- - CSDN博客Web前端推荐文章
使用js服务端语言nodejs和express建个人站点. 作者:田想兵 个人网址: http://www.lovewebgames.com. 今天主题很沉重,因为听说京城又在开会,房价上涨,物价也在涨,还有西湖边上的小松鼠被游客踩死了. 所以说点不开心的事让大伙开心一下,记得一个月前,公司破产,为了生计,我不得不再次投入到找工作的大军中,在杭州,可能做IT行业的技工,都想进阿里淘宝这家杭州标志性的企业,我也不例外,于是投了一份资深前端职位的简历.

fred: MongoDB Replication 簡記

- - Planet DebianTW
就在幾天前,MongoDB 邁入了 2.2.0 的穩定版本. 我們若回頭來看,MongoDB 一直到了 2.0 前後,比起早期版本,已經有長足的進步,並且支援了相當多的功能,也對規模化和資料庫系統管理下了很多功夫. 對於大多數的資料庫應用,已經非常適合. 若你對資料庫相關技術有些了解,就會知道,當資料庫的資料發展一定規模程度,或是要確保系統不當機時,我們就需要用到 Master/Slave 的方式去備份和備援,當主要(Master)伺服器出了問題,次要(Slave)伺服器便即時補上,保持系統運作.

nodejs快速入门

- AreYouOK? - 淘宝数据平台与产品部官方博客 tbdata.org
主要介绍了一下node.js的发展, 现状, 安装, 使用.

NodeJS学习笔记

- - Web前端 - ITeye博客
今天开始学习NodeJS,在这里做个笔记,记录一下我的学习历程,也方便以后参考. Node.js® 是一个基于  Chrome V8 引擎 的 JavaScript 运行时. 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.

Fred Wilson:云端将没有文件

- 定风波 - 36氪
我和很多围绕云端存储领域创业的人谈过很长时间,这不是一个我喜欢的领域,因为我不认为我们将会使用存储在云端的文件. 现在 Dropbox 是一家  100 亿美元的公司,并且他们一直做得非常好,但是当一切都存储在云端的时候,我们还需要 Dropbox 么. 上周我在 Turntable 的一个音乐室里,听了一些很有趣的音乐,我点了一个按钮把刚刚听的音乐发送到 Rdio,我去 Rdio 再听它们几次,然后我去 SoundCloud 找到这些音乐,然后将它们发布到 Tumblr 上.

Fred Wilson:那些未登陆的用户

- SotongDJ - 36氪
Twitter CEO Dick Costolo 在 Twitter 总部召开了新闻发布会,Danny Sullivan 在博客上做直播,直播中有些部分我很感兴趣. 根据 Google Analytics,Twitter.com 每月独立访客 4 亿. 活跃用户是指登陆到 Twitter 的用户,所以也就是意味着,75% 的 Twitter 用户每个月不登陆.

NodeJS与Mysql的交互

- - CSDN博客推荐文章
把Mysql Module装到 NodeJS中.   JS脚本 mysqlTest.js. //加载mysql Module  .   //要创建的数据库名  .     //要创建的表名  . 作者:qxs965266509 发表于2013-8-17 9:47:35 原文链接. 阅读:0 评论:0 查看评论.