node + express 라우팅에 문제가 있습니다. 기본적으로 IDE 웹 스톰에 라우팅 스키마가 있습니다. 이 오류가 발생하기 때문에 모든 것을 잘 구성했는지 확신 할 수 없습니다.User.findByID가 함수가 아닙니다.
우편 배달부에서 올바른 결과를 얻으면 GET/users 및 POST/users를 올바르게 수행 할 수 있습니다.
노선//
const express = require('express');
const router = express.Router();
const _ = require('lodash');
const {ObjectID} = require('mongodb');
const {mongoose} = require('../db/mongoose')
const {User} = require('../db/models/users')
const {Project} = require('../db/models/projects')
const {Dialog} = require('../db/models/dialogs')
(...)
router.get('/users/:userid', (req, res) => {
var id = req.params.userid.toString();
if (!ObjectID.isValid(id)) {
return res.status(404).send();
}
User.findByID(id).then((user) => {
if (!user) {
return res.status(404).send();
}
res.send({user});
}).catch(() => {
res.status(404).send();
});
});
모델을 users.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema
// todo refactor userschema with proper validators (view udemy course)
const UserSchema = new Schema({
email: {type: String, required: true},
password: {type: String, required: true},
name: {type: String},
company: {type: String},
phone: {type: String},
projects: [{type: Schema.Types.ObjectId, ref: 'Project'}]
});
const User = mongoose.model('User', UserSchema);
module.exports = {User}
JavaScript는 대소 문자를 구별합니다 (https://docstore.mik.ua/orelly/webprog/jscript/ch02_02.htm). 'findById' (마지막 문자 강조)를 시도하십시오. – Mikey
'req.params.userid.toString();'이 줄은 또한 문제를 일으키고,'userid'에서 소문자 i를 적어 둡니다. –