Я пишу приложение для ежедневной отчетности по дневному уходу с использованием стека PERN, и у меня возникают проблемы с некоторыми из моих конечных точек POST. Нижеследующее работает правильно:
app.get('/classroomList', (req, res) => {
classroom.getClassrooms().then((classrooms) => { res.send(classrooms) })
})
app.get('/classroomList/:id',(req,res)=>{
classroom.getStudentsByClass(req.params.id).then((student)=>{
res.send(student)
})
})
app.post('/classroomList', (req, res) => {
classroom.createClassroom(req.body)
.then((classroom)=>{res.send(classroom.attributes)})
})
app.delete('/classroomList/:id', (req, res) => {
console.log('req received')
classroom.deleteClassroom(req.params.id).then((classroom) => {
res.send('Deleted')
})
})
}
Однако у меня есть несколько других, написанных точно таким же образом, которые возвращаются с ошибкой:
TypeError Students.createStudent не является функцией
Тот, что ниже, не работает и выдает вышеупомянутое сообщение об ошибке
module.exports = (app) => {
const students = require('../controllers/studentController')
app.get('/studentList', (req, res) => {
students.getStudents().then((students) => { res.send(students) })
})
app.delete('/studentList/:id', (req, res) => {
students.deleteStudent(req.params.id).then((student) => {
res.send('Deleted')
})
})
app.post('/studentList', (req, res) => {
console.log(req.body)
students.createStudent(req.body)
.then((student)=>{console.log(student.attributes)})
})
}
Это контроллер, который работает:
exports.createClassroom = (classroom) => {
console.log('function accessed')
const newClassroom = new Classroom(
classroom)
return newClassroom.save()
.then(classroom => {
return classroom;
})
.catch(err => {
console.log(err)
})
А этот нет:
exports.createStudent = (student) => {
console.log('function accessed')
const newStudent = new Student(
student)
return newStudent.save()
.then(student => {
return student;
})
.catch(err => {
console.log(err)
})
}