NodeJs四步写出api接口(附源码一键CV)

2 篇文章 0 订阅
1 篇文章 0 订阅

使用node框架express来写个前端使用的api接口。

写在前面:

之前发过的一篇 分享免费api接口 浏览很多,看来需要接口的道友不少,那么与其苦于寻找接口,不如自己动手写,自给自足,既满足需求又可以在这个内卷的时间提高下自己,好了,开干吧。

本文为express接口入门,没有用数据库,关于数据的增删改查则利用js模拟删选。如需数据库的看下面这篇:

使用数据库:express+mysql接口

正文开始:

第一步:新建项目文件夹,初始化,文件夹下新建一个app.js

图片

第二步:根目录下打开cmd,安装express,执行如下命令

图片

npm i express

然后再装一个解决接口跨域的插件,输入如下命令安装

图片

npm i cors

安装后文件应该是这样的

图片

第三步:进入app.js开始写入如下代码,然后运行app.js开启一个本地服务器(此时,你的电脑既是服务端又是客户端,自己访问自己电脑本地的服务)

图片

  运行项目app.js: 项目根目录下打开cmd输入node app.js 回车

图片

到这里,一个最简单的本地服务器已经运行在你的电脑上了,此时来做一个简单的测试,访问 http://localhost:3000/ 这个服务,会看到如下图所示:

图片

第四步:开始写接口, 写个get类型的查询用户列表的接口,注意此处没有用到数据库,只是让服务器返回一些用户数据,数据来自服务器,一般服务器数据取自于数据库,这里为简便明了,先手动模拟数据。

在app.js的app.listen之前写入如下代码:

图片

接口规则代码就按这样写,其中req是用来接收前端传的参数的:

图片

完整代码应该是这样的:

图片

写完之后,重启一下app.js,就是在根目录的cmd里面重新运行一遍node app.js。

接下来测试下我们写的这个接口,get类型接口可以直接在浏览器地址栏输入测试,可以看到,数据已经返回了。

图片

但是地址栏只能测试get类型接口,并且数据格式也不容易看清,最主要的是浏览器地址栏不能测试post类型接口,所以就需要一个测试接口的工具,一般都用postman,个人觉得软件太麻烦,进入这个网站来测试接口https://getman.cn/,这是一个在线测试接口网址,挺好用的。

图片

可以看到,接口已经正确返回数据了。
到这里,是不是觉得写个接口很简单,post类型大同小异了,基本和get类似的写法:

这是一个post类型查询新闻列表接口:

图片

测试post接口:

图片

到此,一个简单的查询列表的接口就可以了。但是,接口大部分情况下都是需要带参数的,下面分别看下get和post接口请求如何接收前端参数。

get接口接受前端参数:

场景:例如前端需要拿到性别为女的用户列表,那么前端需要传给接口一个参数,意为需要某个条件下的数据,这里传给后端接口一个sex参数(这个参数一般是由接口规定的,需要前端传一个什么参数),若sex参数值为0则表示需要性别为女的用户列表,sex值为1则表明需要性别为男的用户列表。

get接口应该如下这样改动(这里的数据理论上应该是使用sql语句去删选的,但是这里没有用到数据库,所以使用filter模拟数据删选):

图片

然后测试这个接口:传sex==0时返回性别女的数据:

图片

传sex==1时返回性别男的数据:

图片

可以看到,通过传sex参数正确返回了需要的数据。

总结get接口接收前端参数:req.query

接下来看post接口接收前端参数:

post接口接受前端参数:

场景:前端将id传给接口,删选出当前id对应的列表

对于post类型,要获取前端传的参数,先要安装一个插件:body-parser

图片

安装之后需要引入并使用插件:

图片

然后,接口这样写:

图片

测试,id传1,返回id为1的数据:

图片

id传2,返回id为2的数据:

图片

总结post接口接收前端参数:req.body

完整代码(复制到app.js中,根目录下cmd,输入node app.js 回车开启项目,然后测试接口):

查询用户列表:http://localhost:3000/userList

查询新闻列表:http://localhost:3000/newsList

// 引入express并use使用它
const express = require('express')
const app = express()

//导入解决跨域
const cors = require('cors')
app.use(cors())

// 用于post接收前端参数
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));

// 用户查询接口
app.get('/userList', (req, res) => {
    // req.query拿到前端传的参数
    let obj = req.query
    console.log(obj);
    let list = [
        { name: '张三', age: 32, sex: '男', job: '程序员' },
        { name: '李四', age: 12, sex: '女', job: '视频教程师' },
        { name: '王五', age: 42, sex: '男', job: '自由职业者' }
    ]

    // 利用参数删选出需要的数据
    if (obj.sex == 0) {
        list = list.filter(v => {
            return v.sex == '女'
        })
    } else if (obj.sex == 1) {
        list = list.filter(v => {
            return v.sex == '男'
        })
    }

    // 返回给前端的数据
    res.send(list)
})


// 新闻列表查询接口
app.post('/newsList', (req, res) => {
    let obj = req.body
    console.log(obj.id, '接收到的前端参数');
    let list = [
        { id: 1, title: '新闻标题一', time: '2023-7-1', desc: '这是新闻的简介描述1' },
        { id: 2, title: '新闻标题二', time: '2023-7-2', desc: '这是新闻的简介描述2' },
        { id: 3, title: '新闻标题三', time: '2023-7-3', desc: '这是新闻的简介描述3' },
    ]
    // 如果传来id则删选  否则返回全部数据
    if (obj.id) {
        list = list.filter(v => {
            return v.id == obj.id
        })
    }

    res.send(list)
})


app.listen(3000, () => {
    console.log('server success,本地服务器已经启动在3000端口!');
})

图片

到此,完。

如果对你有帮助,动动发财的手点个赞吧!

本文首发于微信公众号:雪天前端,欢迎关注,订阅更多实用资源!

  • 37
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Node.js 是一种运行在服务器端的 JavaScript 运行环境,可以用它来构建后端应用程序。MySQL 是一种流行的关系型数据库管理系统,它可以存储和检索数据。 要使用 Node.js 和 MySQL 来创建 API 接口,你需要使用适当的 Node.js 模块和库来连接和操作 MySQL 数据库。以下是一些可能用到的模块和库: 1. mysql:一个 Node.js 模块,用于连接和操作 MySQL 数据库。可以使用它来执行查询和更新操作。 2. express:一个 Node.js 框架,可以帮助你创建 Web 应用程序和 API 接口。 3. body-parser:一个 Node.js 中间件,用于解析 HTTP 请求正文中的 JSON 数据。 以下是一个示例代码片段,用于使用 Node.js 和 MySQL 创建 API 接口: ``` const mysql = require('mysql'); const express = require('express'); const bodyParser = require('body-parser'); const app = express(); const port = 3000; // 创建 MySQL 数据库连接 const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'mydatabase' }); // 连接 MySQL 数据库 connection.connect((err) => { if (err) throw err; console.log('Connected to MySQL database'); }); // 使用 body-parser 中间件来解析请求正文中的 JSON 数据 app.use(bodyParser.json()); // 创建 GET 请求处理程序,返回所有数据 app.get('/data', (req, res) => { connection.query('SELECT * FROM mytable', (err, result) => { if (err) throw err; res.send(result); }); }); // 创建 POST 请求处理程序,将数据插入到 MySQL 数据库中 app.post('/data', (req, res) => { const data = req.body; connection.query('INSERT INTO mytable SET ?', data, (err, result) => { if (err) throw err; res.send('Data inserted successfully'); }); }); // 启动服务器,监听指定端口 app.listen(port, () => { console.log(`Server listening at http://localhost:${port}`); }); ``` 这个示例代码片段创建了一个 Express 应用程序,使用 body-parser 中间件来解析请求正文中的 JSON 数据。它还使用 mysql 模块来连接和操作 MySQL 数据库。它创建了两个请求处理程序,一个处理 GET 请求,另一个处理 POST 请求,分别返回所有数据和将数据插入到 MySQL 数据库中。最后,它启动了服务器,并监听指定的端口。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值