当前位置: 首页 > article >正文

node.js使用express框架实现api接口开发(从零开始,超简单可直接复制)

目录

一、效果图

二、实现

1、引入express框架依赖

2、 新建启动文件(/server/index.js)

3、新建接口函数文件(/server/router.js)


一、效果图

二、实现

1、引入express框架依赖

在项目文件夹根目录下,打开控制台cmd,输入以下命令:

npm install express --save

(ps:如果下载太慢,可以去安装npm淘宝镜像,使用cnpm下载) 

2、 新建启动文件(/server/index.js)

主要是接口的配置及实现

// 引入express服务依赖
const express = require('express')
const app = express()

// express配置
app.use(express.json()) // 解析 JSON 格式的请求体数据(application/json)
app.use(express.urlencoded({extended: true})) // 解析 URL 编码格式的请求体数据(application/x-www-form-urlencoded)

// 添加接口目录文件【router.js】(接口函数所在目录)
const router = require('./router')
app.use('/', router)

// 设置接口监听
const port = 8888
app.listen(port, () => {
    console.log('服务已启动,端口号: ' + port)
})

3、新建接口函数文件(/server/router.js)

主要是接口执行的规则,这里的思路是先接口守卫(初步过滤),然后演示不同类型的接口执行情况

const express = require('express')
const router = express.Router()

/**
 * 接口过滤守卫(过滤黑白名单,已经权限验证等等)
 *  req 请求体
 *  res 返回体
 *  next 继续执行
 */
router.use(function (req, res, next) {

    console.log('请求头(包含cookies):')
    console.log(req.headers)

    // 接口守卫过滤
    if (true) {
        // 继续执行接口
        next()
    } else {
        // 结束接口,返回结果
        res.end(JSON.stringify({
            code: 500,
            msg: '非法操作!'
        }))
    }

})

/**
 * post接口
 */
router.post('/post_test', (req, res) => {

    console.log('请求体参数:')
    console.log(req.body)

    // 返回结果
    res.end(JSON.stringify({
        code: 200,
        msg: 'post请求成功!'
    }))

})

// get接口
router.get('/get_test', (req, res) => {

    console.log('请求体参数:')
    console.log(req.query)

    // 返回结果
    res.end(JSON.stringify({
        code: 200,
        msg: 'get请求成功!'
    }))

})

module.exports = router


http://www.kler.cn/a/287553.html

相关文章:

  • 大语言模型通用能力排行榜(2024年10月8日更新)
  • 深入理解 SQL_MODE 之 ANSI_QUOTES
  • 高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十三)图优化SLAM的本质
  • uniapp微信小程序接入airkiss插件进行WIFI配网
  • Ubuntu22.04LTS 部署前后端分离项目
  • ONLYOFFICE8.2版本测评,团队协作的办公软件
  • ES6中js文件执行顺序
  • 第二证券:两市成交不足5000亿元 小盘成长股逆势活跃
  • 1秒等于1000毫秒, 1毫秒等于1000微秒,1微秒等于1000纳秒
  • Node.js中sqlite3的db.run、db.get和db.all方法深入解析
  • 区块链媒体套餐发稿:世媒讯引领项目推广新风潮
  • ARM体系结构
  • Linux——性能调优工具一览
  • c语言中的前向声明
  • 基于深度学习的游客满意度分析与评论分析【情感分析、主题分析】
  • 【java】类的多层继承
  • 四款经典的防泄密软件,企业防泄密必备软件
  • 计算机网络面试真题总结(七)
  • 算法训练营|图论第10天 Bellman_ford:优化算法,判断负权算法,单源有限最短路
  • Mysql——高可用集群部署
  • WHAT - 通过 react-use 源码学习 React(Lifecycles 篇)
  • ThinkPHP数据库链式操作之field
  • 如何从mssql里面导出程序集ASSEMBLY为dll
  • Django框架安全
  • Spring 事务传播和自调用行为
  • SPI驱动学习三(spidev的使用)