我在使用node + express路由时遇到了问题。默认情况下,我在IDE webstorms中提供了路由模式。我不确定我是否正确配置了所有内容,因为我遇到了这个错误。
我可以做一个GET /users和POST /users正确与邮递员的结果。
routes/users.js
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();
});
});
models/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}
发布于 2017-12-27 21:45:22
米奇是对的。Mongoose模型函数是findById()而不是findByID() - http://mongoosejs.com/docs/api.html#model_Model.findById
https://stackoverflow.com/questions/47997497
复制