04.express get,post,use

本文介绍Express.js中GET和POST请求的处理方式,包括如何通过路由获取参数、使用中间件处理请求及静态资源的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值