<center>express get及post请求</center>

GET请求的参数在URL中,在原生Node中,需要使用url模块来识别参数字符串。在Express中,不需要使用url模块了。可以直接使用req.query对象。

POST请求在express中不能直接获得,必须使用body-parser模块。使用后,将可以用req.body得到参数。但是如果表单中含有文件上传,那么还是需要使用formidable模块。

1、get请求

//引入express包
var express = require('express');
//实例化
var app = express();
//get请求
app.get('/student',function (req,res) {
    console.log(req.query);
    res.send();
});
app.listen(8080);

2、post请求

post请求要借助body-parser模块。使用后,将可以用req.body得到参数,使用模板引擎,表单提交。
首先先建一个form.ejs,模板引擎必须创建在views文件夹下.

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <form action="#" method="post">
        <input type="text" name="name"/>
        <input type="text" name="age"/>
        <input type="submit"/>
    </form>
</body>
</html>

接下来就使用POST方式请求参数

引入 express,body-parser,在这里必须要有ejs这个模块

var express = require("express");
var bodyParser = require('body-parser');
var app = express();

引入模板引擎,ejs模板引擎使用app.set(“view engine”,“ejs”),而jade模板引擎使用app.engine(‘jade’, require(‘jade’).__express)这种方式;

//模板引擎
app.set("view engine","ejs");

app.get("/",function(req,res){
     res.render("form");
});
//bodyParser API
app.use(bodyParser.urlencoded({ extended: false }));

app.post("/",function(req,res){
    console.log(req.body);
});
app.listen(3000);
/*
* @Author: Administrator
* @Date:   2019-08-20 09:31:54
* @Last Modified by:   Administrator
* @Last Modified time: 2019-08-20 10:14:33
*/

// 1. 引入express包(模块)
var express = require('express'); 

// 2. 达到一个 app 实例
// var server = http.createServer(function(req, res){res.end('hi')});
var app = express(); 

// 3. 要做出配置,针对不同的url地址进行响应 
// get 代表请求方式是 get 则满足条件,则后面的回调函数执行。
app.get('/', function (req, res) {
	
	console.log( req.url );
	console.log( req.method );

	res.end('index');

});

// 注意: http 请求方式除了 get 和 post 之外,还有很多其他的方式 还有 put detelet trace option.....
// 只是现在常见的 get 和 post 但是需要注意: 对于浏览器工具只能实现 get 和 post 如果要实现其他方式请求,则必须使用 额外工具 post
// 代表针对delete 请求处理
app.delete('/delete/12', function (req, res) {
	console.log( 'delete coming' );
	res.send('delete ok!');
});

app.put('/put/12', function (req, res) {
	console.log( 'put coming' );
	res.send('put ok!');
});

// 1. 只能处理 get 请求 可以完全没问题  1. 表单post  2. postman 专门  api 接口请求测试
app.post('/login', function (req, res) {

	// 目前来说,还没办法去处理 post 数据 稍后使用第三方的 包 专门处理 post 数据

	console.log( 'post data coming...' );

	res.send('post ok!');
	
});
// 2. 响应的内容很有限 可以 html 代码
app.get('/showform', function (req, res) {
	
	// send 是 express 框架提供的一个更好的响应方法 send 发送
	// application/x-www-form-urlencoded 代表会对 post提交的表单内容进行编码
	// https://www.jianshu.com/p/53b5bd0f1d44
	var _html = `<form action="/login" method="POST" enctype="application/x-www-form-urlencoded">
						
					<p>
						用户名:<input type="text" name="username" value=""  id=""/>
					</p>

					<p>
						密码:<input type="password" name="password" value=""  id=""/>
					</p>
					
					<p>
						<input type="submit" value="提交" />
					</p>
				</form>`;

	res.send( _html );

})

// 1. 对于 index.js 一般称之为 入口文件 ,需要针对每个 url请求设计一个规则,导致 入口文件过大。
// 2. 响应的信息虽说是 html 代码,不好维护。 尽可能把 html 代码抽离出来,形成网页文件。

// 4. 监听端口
var port = 8080;
app.listen(port, function () {
	console.log( `server running at ${port}...` );
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值