最新版本号[免费下载]

使用NodeJS加Express从Request取值

作者:本站编辑 发布时间:2015-11-24 来源:本站原创 点击数:

过去无论哪一种网站应用程式的开发语言,初学者教学中第一次会提到的起手式,八九不离十就是 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.query.id);
    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);
});
本文责任编辑: 加入会员收藏夹 点此参与评论>>
复制本网址-发给QQ/微信上的朋友
AI智能听书
选取音色