Node-express写接口的详细步骤

通过模块express来写接口

express介绍

案例

解决跨域问题

  • 安装cors模块
  • 代码中,在所有接口之前,加载cors

使用express 搭建web服务器


// 1) 加载 express 模块
const express = require('express');

// 2) 创建 express 服务器
const app = express();

// 3) 监听浏览器请求并进行处理

app.get('GET请求的地址', 处理函数);

app.post('POST请求的地址', 处理函数);

// 4) 开启服务器
app.listen(3000, () => console.log('express服务器开始工作了'));

写接口

1.下载安装所需模块 express
2.准备好相应的json文件
3.创建index.js

// 用于启动服务,并且写接口
const express = require('express')
const app = express()

// 写接口
// app.请求方式('接口地址', '带有req、res参数的处理函数');
// app.get('/api/student', (req, res) => {});
// app.post();
// app.delete();
// app.put();


app.listen(3000, () => console.log('启动了'));

使用 nodemon index.js 启动服务

接口案例:

写一个获取市的接口
1.npm i express
2.准备文件:city.json

{"内蒙古自治区": {
    "呼和浩特市": [
      "新城区",
      "回民区",
      "玉泉区",
      "赛罕区",
      "土默特左旗",
      "托克托县",
      "和林格尔县",
      "清水河县",
      "武川县"
    ],
    "包头市": [
      "东河区",
      "昆都仑区",
      "青山区",
      "石拐区",
      "白云鄂博矿区",
      "九原区",
      "土默特右旗",
      "固阳县",
      "达尔罕茂明安联合旗"
    ],
    "乌海市": [
      "海勃湾区",
      "海南区",
      "乌达区"
    ],
    "赤峰市": [
      "红山区",
      "元宝山区",
      "松山区",
      "阿鲁科尔沁旗",
      "巴林左旗",
      "巴林右旗",
      "林西县",
      "克什克腾旗",
      "翁牛特旗",
      "喀喇沁旗",
      "宁城县",
      "敖汉旗"
    ],
    "通辽市": [
      "科尔沁区",
      "科尔沁左翼中旗",
      "科尔沁左翼后旗",
      "开鲁县",
      "库伦旗",
      "奈曼旗",
      "扎鲁特旗",
      "霍林郭勒市"
    ],
    "鄂尔多斯市": [
      "东胜区",
      "康巴什区",
      "达拉特旗",
      "准格尔旗",
      "鄂托克前旗",
      "鄂托克旗",
      "杭锦旗",
      "乌审旗",
      "伊金霍洛旗"
    ],
    "呼伦贝尔市": [
      "海拉尔区",
      "扎赉诺尔区",
      "阿荣旗",
      "莫力达瓦达斡尔族自治旗",
      "鄂伦春自治旗",
      "鄂温克族自治旗",
      "陈巴尔虎旗",
      "新巴尔虎左旗",
      "新巴尔虎右旗",
      "满洲里市",
      "牙克石市",
      "扎兰屯市",
      "额尔古纳市",
      "根河市"
    ],
    "巴彦淖尔市": [
      "临河区",
      "五原县",
      "磴口县",
      "乌拉特前旗",
      "乌拉特中旗",
      "乌拉特后旗",
      "杭锦后旗"
    ],
    "乌兰察布市": [
      "集宁区",
      "卓资县",
      "化德县",
      "商都县",
      "兴和县",
      "凉城县",
      "察哈尔右翼前旗",
      "察哈尔右翼中旗",
      "察哈尔右翼后旗",
      "四子王旗",
      "丰镇市"
    ],
    "兴安盟": [
      "乌兰浩特市",
      "阿尔山市",
      "科尔沁右翼前旗",
      "科尔沁右翼中旗",
      "扎赉特旗",
      "突泉县"
    ],
    "锡林郭勒盟": [
      "二连浩特市",
      "锡林浩特市",
      "阿巴嘎旗",
      "苏尼特左旗",
      "苏尼特右旗",
      "东乌珠穆沁旗",
      "西乌珠穆沁旗",
      "太仆寺旗",
      "镶黄旗",
      "正镶白旗",
      "正蓝旗",
      "多伦县"
    ],
    "阿拉善盟": [
      "阿拉善左旗",
      "阿拉善右旗",
      "额济纳旗"
    ]
  }},

3.创建index.js

const express = require('express')
const app = express()

// 写接口
let cities = require('./city.json'); // 加载所有的省市县

app.get('/api/province', (req, res) => {
  	// 处理数据,将所有的省取得
    app.get('/api/city', (req, res) => {
      let pname = req.query.pname; // 这行代码的意思是获取 url后拼接的 查询参数
      if (pname) { // 判断,如果能够取得pname参数
        let city = [];
        for (key in cities[pname]) {
            city.push(key);
        }
        res.send(city);
      } else {
        res.send({code: 1, message: 'pname参数必填'})
      }
});
})

app.listen(3000, () => console.log('启动了'))

4.结果
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值