2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > node.js的express模块实现GET和POST请求

node.js的express模块实现GET和POST请求

时间:2024-05-16 14:52:02

相关推荐

node.js的express模块实现GET和POST请求

一、环境

1、安装express

npm i express@4.17.1 // 安装express模块

2、安装nodemon

npm i nodemon -g

3、运行命令

nodemon .\test.js

二、代码

1、代码结构:

test.html为页面test.js为服务器端代码apiRouter为封装的路由模块

2、apiRouter.js

const express = require("express");const database = require("mime-db");const router = express.Router();// 挂载对应的路由router.get("/get", (req, res) => {// 通过 req.query 获取客户端通过查询字符串,发送到服务器的数据const query = req.query;// 向客户端响应处理的结果res.send({status: 0, // 0成功,1失败msg: "get请求成功!",data: query, // 响应给客户端的数据});});router.post("/post", (req, res) => {// 通过 req.body 获取请求体中包含的 url-encoded 格式的数据const body = req.body;// 调用res.send方法,向客户端响应结果res.send({status: 0,msg: 'POST请求成功!',data: body})});module.exports = router;

3、test.js

const express = require("express");// 创建服务器实例const app = express();// 配置解析表单数据的中间件app.use(express.urlencoded({ extended: false }));// 一定要在路由之前,配置cors中间件,从而解决接口跨域问题const cors = require("cors");app.use(cors());// 导入路由模块const router = require("./apiRouter");// 把路由挂载到app实例上app.use("/api", router);// 启动服务器app.listen(8081, () => {console.log("server running at http://127.0.0.1:8081");});

4、test.html

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><script src="/jquery/3.4.1/jquery.min.js"></script></head><body><button id="btnGET">GET</button><button id="btnPOST">POST</button><script>$(function () {// 测试Get接口$("#btnGET").on("click", function () {$.ajax({type: "GET",url: "http://127.0.0.1:8081/api/get",data: {name: "zs",age: 30,},success: function (res) {console.log(res);},});});// 测试Post接口$("#btnPOST").on("click", function () {$.ajax({type: "POST",url: "http://127.0.0.1:8081/api/post",data: {bookname: "西游记",author: "吴承恩",},success: function (res) {console.log(res);},});});});</script></body></html>

效果:

点击GET、POST按钮以后,控制台分别打印:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。