1.get
1.code文件夹下创建express_demo.js
请求地址:http://localhost/note/66/99
//express_demo.js 文件
var express = require('express');
var app = express();
app.get("/note/:id/:score",function(req,res){
res.send("id:"+req.params["id"]+ "分数:"+req.params["score"]);
});
var server = app.listen(80);
注意:对于带问号传参的地址, 对问号之后的参数视而不见
比如:http://localhost/note?id=0001&score=99最后拦截的地址只是 “/note”
下面这两段代码,谁在上面就执行谁,不会被下面覆盖
app.get("/note/:id/:score",function(req,res){
res.send("id:"+req.params["id"]+ "分数:"+req.params["score"]);
});
app.get("/note/test/2333",function(req,res){
res.send("121212");
});
那么, 如何获取get请求问号后面的参数呢?比如请求地址是
http://localhost/user?id=1111
app.get("/user",function(req,res){
console.log(req.query);
res.send(req.query.id);
})
2.use
创建一个express_demo.js服务
测试地址:http://localhost/admin/aa/22/33/44?id=1111
//express_demo.js 文件
var express = require('express');
var app = express();
app.use("/admin",function(req,res){
res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});
//输出全路径/admin/aa/22/33/44?id=111
res.write(req.originalUrl+"\n");
//输出端口后面第一块地址 /admin
res.write(req.baseUrl+"\n");
//输出地址后面所带的参数忽略问号之后的值 /aa/22/33/44
res.write(req.path+"\n");
res.end("你好");
});
var server = app.listen(80);
1.code文件夹下创建一个文件夹public
2.public 下创建一个css文件夹
3.public 下创建一个test.html
4.css文件夹下创建一个style.css文件
5.code文件夹下创建一个use.js服务
test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div>
我是public下的test文件
</div>
</body>
</html>
test2.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>
我是public2 下的test2 文件
</div>
</body>
</html>
use.js
var express = require("express");
var app = express();
app.use(express.static("./public"));
app.use(express.static("./public2"));
app.listen(80);
style.css
div{
width:100px;
height:100px;
background: red;
}
启动use.js 服务
测试地址:http://localhost/test.html
http://localhost/test2.html
发现都可以直接请求到页面。
如果test2.html 修改成test.html 的话(即多个不同文件夹下的html文件名称相同),则只能请求到定义的第一静态个文件夹下的test.html
3.post
post请求不能在express中直接获得,必须使用body-parser模块
cnpm install body-parser --save-dev
1.创建form表单
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="jquery/jquery.min.js"></script>
</head>
<body>
<form>
姓名:<input type="text" name="name">
年龄:<input type="text" name="age">
<input type="button" id="btn" value="提交">
</form>
<script>
$("#btn").click(function(){
$.ajax({
url:"/insert",
type:"post",
data:$("form").serialize(),
success:function(data){
alert(data);
}
});
});
</script>
</body>
</html>
2.创建server.js
var express = require("express");
var bodyParser = require("body-parser");
var app = express();
app.use(express.static("../public"));
/**
* bodyParser.json()和bodyParser.urlencoded()区别:
* 一个接受form请求,一个接受json请求,解析的规则不一样
*/
app.use(bodyParser.urlencoded({extended : false}));
app.post("/insert",function(req,res){
console.log(req.body);
});
app.listen(80);