req 和res测试接口的基本用法

52 阅读2分钟

安装nodemon npm install nodemon --save -dev

安装接口测试工具apipost 或者 postman

在pack.json里面改一下测试那里,{“dev”:"nodemon index.js},方便使用npm run nodemon

index.js代码如下

//用commonJS的方式引入node自带的http
const http   = require("http")
//创建服务
const server =  http.createServer((req,res)=>{
    // 用户想请求的是哪个路径
    const url = req.url
    // 获取请求的方法method
    const method = req.method
    // 返回,响应数据,会渲染到页面
    res.end(`this url is ${url},this method is ${method}`)  
   
})
// 监听端口
server.listen(3000)
// 会渲染到node.js
console.log("请访问http://localhost:3000");

我们知道, 路由是否正确主要取决于url和method是否正确, 我们修改一下代码, 做一下路由正确性的判断

const http   = require("http")
const server =  http.createServer((req,res)=>{
    // 用户想请求的是哪个路径
    const url = req.url
    // 获取请求的方法method
    const method = req.method
    // 返回,响应数据,会渲染到页面 
    // 这里的url不要忘记加斜线/
   if(url === "/api/list" && method==="GET"){
    res.end("this is list api")
   }else{
    res.end("this is error")
   }
   
})
// 监听端口
server.listen(3000)
// 会渲染到node.js
console.log("请访问http://localhost:3000");

结果如下

image.png

把接口复制到接口测试工具里面返回如下

image.png

如果是同样的接口,但是后面携带了参数,如果把携带了参数的接口复制到接口测试工具,会报错,我们可以这么修改

如果是同样的的路径,但是携带了参数,我们可以把路径后面的参数省略,只取出路径 const url = req.url.split("?")[0]

其他代码不变

const http   = require("http")
const server =  http.createServer((req,res)=>{
    // 用户想请求的是哪个路径
    // 如果是同样的的路径,但是携带了参数,我们可以把路径后面的参数省略,只取出路径
    const url = req.url.split("?")[0]
    // 获取请求的方法method
    const method = req.method
    // 返回,响应数据,会渲染到页面 
    // 这里的url不要忘记加斜线/
   if(url === "/api/list" && method==="GET"){
    res.end("this is list api")
   }else{
    res.end("this is error")
   }
   
})
// 监听端口
server.listen(3000)
// 会渲染到node.js
console.log("请访问http://localhost:3000");

image.png

image.png