那大概意思就是这样就可以使用

来源:4-10 使用 json-server 搭建 Mock Server-02

CSL369

2024-09-02

const path = require('path')
const router = require('./router')
// 创建实例
const jsonServer = require('json-server')
const server = jsonServer.create()

// 添加中间件
/**
 * defaults默认中间件包含跨域、缓存、资源等待
 */
const defaults = jsonServer.defaults({
  static: path.join(__dirname, '../public')
})
server.use(defaults)
server.use(jsonServer.bodyParser)
function test(req, res, next) {
  console.log('----')
  const testData = {
    name: 'coder',
    age: 3
  }
  res.json(testData)
}
server.use('/api/test', test)
// 开启端口
server.listen(8999, () => {
  console.log('JSON Server is running')
})

写回答

1回答

AI小慕

2024-11-12

问题核心

你的问题是关于如何正确配置和使用 json-server 来搭建一个简单的 Mock Server。从你提供的代码来看,大部分配置是正确的,但是有一些细节需要注意。

核心问题及解答

  1. 中间件顺序:确保中间件的添加顺序正确。例如,bodyParser 应该在自定义中间件之前被调用。
  2. 静态文件服务static 配置用于指定静态文件目录,这里已经正确配置了。
  3. 路由处理:自定义的 /api/test 路由看起来没有问题,但为了确保一切正常,可以测试一下这个路由是否能返回预期的数据。

修复后的完整代码

const path = require('path');
const router = require('./router'); // 确保此路径指向实际存在的路由文件
// 创建实例
const jsonServer = require('json-server');
const server = jsonServer.create();

// 添加默认中间件(包括跨域、缓存等)
const defaults = jsonServer.defaults({
  static: path.join(__dirname, '../public')
});
server.use(defaults);

// 使用 body-parser 中间件来解析请求体
server.use(jsonServer.bodyParser);

// 自定义中间件示例
function test(req, res, next) {
  console.log('----');
  const testData = {
    name: 'coder',
    age: 3
  };
  res.json(testData);
}

// 将自定义中间件应用到 /api/test 路径上
server.use('/api/test', test);

// 如果有额外的路由需求,可以通过下面的方式引入
// server.use(router);

// 开启端口
server.listen(8999, () => {
  console.log('JSON Server is running on port 8999');
});

注意事项

  • 确认 ./router 文件存在且包含有效的路由配置。如果不需要额外的路由,则可以忽略这一步。
  • 测试 /api/test 接口,确保它能够正确响应并返回 JSON 数据。
  • 请根据实际项目结构调整静态文件目录路径。

通过上述调整,你应该能够成功启动并运行一个基本的 json-server 实例,为后续开发提供模拟数据支持。

0
0

Vue3+Pinia+Vite+TS 还原高性能外卖APP项目

Vue3+Pinia+Vite+TS 还原高性能外卖APP项目

392 学习 · 251 问题

查看课程