【发布时间】:2022-06-16 16:52:20
【问题描述】:
我是一名初级 JavaScript 开发人员。 当我尝试通过路线获取所有士兵时出现此错误:POSTMAN 中的“localhost:3005/api/v1/soldiers”。
我为 HomePost、服务、控制器和路由编写了架构,并使用了 mongoose 发送任何请求时,一切正常。按 ID 查找、按 ID 删除、创建首页帖子、获取首页帖子列表。 我开始为士兵编写类似的架构、服务、控制器和路由。
models/sordier.model.js
import mongoose from 'mongoose'
const Soldier = new mongoose.Schema({
title: {
type: String,
required: true
},
image: {
type: String,
required: true
},
rank: {
type: String,
required: true
},
status: {
type: String,
default: '1'
},
created_at: {
type: Date,
default: new Date()
},
updated_at: {
type: Date,
default: new Date()
}
})
export default mongoose.model('Soldier', Soldier)
services/soldiers.service.js
export const getSoldiers = async ({
offset = 0,
limit = 9
}) => Soldier.find({}, null, {
skip: parseInt(offset),
limit: parseInt(limit)
})
api/soldiers/soldiers.controller.js
export const SoldiersListController = async (request, response, next) => {
try {
const { offset, limit } = request.query
const soldiers = await getSoldiers({
offset,
limit
})
return response
.status(200)
.json({
status: true,
soldiers: Array.isArray(soldiers)
? soldiers?.map(soldier => SoldiersListItemMapper(soldier))
: []
})
} catch (error) {
console.log(error);
next(error)
}
return response
.status(200)
.json({
success: true,
data
})
}
api/index.js
import { Router } from 'express'
import HomeRoute from './home'
import SoldiersRoute from './soldiers'
export default () => {
const router = Router()
HomeRoute(router)
SoldiersRoute(router)
return router
}
使用 POSTMAN,我确保该功能有效: 创建一个士兵,通过 ID 获取一个,通过 ID 删除一个,但是获取士兵列表不起作用。
我发现错误: 错误:对于路径“未定义”处的未定义值,转换为未定义失败
我能做什么?
【问题讨论】:
-
嗨,这描述得很好!我能否请您详细说明“在这个阶段我无法在控制台中收到请求”。究竟是哪里抛出的错误?
-
感谢您的回复!在 POSTMAN 中,我在路由上发送了一个 GET 请求:“localhost:3005/api/v1/soldiers”然后我收到了写在这篇文章标题中的错误
-
你能得到错误的堆栈跟踪吗?例如。在你的 catch 子句中,看看你是否可以将错误打印到控制台。
-
你如何确定错误来自 SoldiersListController?