You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NestJS应用中实现JSON-Server模拟外部API?

NestJS 配合 json-server 实现外部API模拟方案

完全可以用json-server实现外部API模拟,不需要侵入NestJS业务代码,两个模拟接口的实现不需要写在NestJS的src业务目录下,按以下步骤操作即可:

  • 安装依赖
    在项目根目录执行安装命令:npm install json-server --save-dev
  • 创建mock专属目录与文件
    在项目根目录新建mock文件夹,所有模拟逻辑都放在这个文件夹下,和NestJS核心业务代码完全隔离:
    1. 新建mock/db.json作为模拟数据源,基础内容如下:
    {
      "mockList": [
        { "id": 1, "title": "测试数据", "desc": "GET接口默认返回内容" }
      ]
    }
    
    1. 新建mock/server.js编写自定义接口逻辑,你需要的1个GET、1个POST接口直接写在这个文件里即可:
    const jsonServer = require('json-server');
    const server = jsonServer.create();
    const router = jsonServer.router('mock/db.json');
    const middlewares = jsonServer.defaults();
    
    // 内置中间件,支持日志、跨域、body解析
    server.use(middlewares);
    
    // 自定义GET模拟接口
    server.get('/api/external/get-data', (req, res) => {
      const list = router.db.get('mockList').value();
      res.status(200).json({
        code: 0,
        data: list,
        message: '请求成功'
      })
    })
    
    // 自定义POST模拟接口
    server.post('/api/external/submit-data', (req, res) => {
      const newRecord = {
        id: Date.now(),
        ...req.body
      }
      router.db.get('mockList').push(newRecord).write();
      res.status(200).json({
        code: 0,
        data: newRecord,
        message: '提交成功'
      })
    })
    
    server.use(router);
    // mock服务单独跑3001端口,和NestJS默认服务端口不冲突
    server.listen(3001, () => {
      console.log('Mock服务已启动:http://localhost:3001');
    })
    
  • 配置启动命令
    打开项目根目录的package.json,在scripts节点下新增mock服务启动命令:
    {
      "scripts": {
        // 原有NestJS启动、构建命令保留即可
        "start:mock": "node mock/server.js"
      }
    }
    
  • 日常使用
    开发环境下开两个终端,一个正常启动NestJS服务(比如默认跑3000端口),另一个执行npm run start:mock启动mock服务。NestJS业务代码里调用外部API时,把请求基地址改成http://localhost:3001即可正常访问你写的两个模拟接口,后续切换真实外部API时,只需要修改请求配置的基地址,不需要改动业务逻辑。

注意:不要把json-server的模拟逻辑写到NestJS的controller、service文件里,两个服务是独立运行的,隔离后不会对生产环境代码造成任何冗余影响。

内容的提问来源于stack exchange,提问作者Akki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 20:01:07