那大概意思就是这样就可以使用
来源: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。从你提供的代码来看,大部分配置是正确的,但是有一些细节需要注意。核心问题及解答
- 中间件顺序:确保中间件的添加顺序正确。例如,
bodyParser应该在自定义中间件之前被调用。 - 静态文件服务:
static配置用于指定静态文件目录,这里已经正确配置了。 - 路由处理:自定义的
/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实例,为后续开发提供模拟数据支持。00 - 中间件顺序:确保中间件的添加顺序正确。例如,
相似问题