Невозможно получить конкретный маршрут - PullRequest
0 голосов
/ 08 апреля 2019

Мне нужно, чтобы я мог получить все данные пользователей из API.Но я получаю следующую ошибку

Cannot GET /users

Что мне нужно исправить в моем коде?

ниже приведен код из основного файла js

const express = require('express')
const app = express()
const mongoose = require('mongoose')
const UserModel = require('./User.js')
const router = express.Router()

app.listen(3000, () => {
    console.log('example app listening on port 3000')
    let db = mongoose.connect('mongodb://testuser:password123@ds149252.mlab.com:49252/assignment',{ useNewUrlParser: true })
})

let baseUrl = "http://localhost:3000"

let getAllUsers = (req, res) =>{
    UserModel.find()
        .exec((err, result)=>{
            if(err){
                console.log(err)
                res.send(err)
            } else if(result === undefined || result === null || result === ''){
                console.log("No Users Found")
                res.send("No Users Found")
            } else {
                console.log('All User Found')
                res.send(result)
            }
        })
} // end get all Users



app.get(baseUrl+'/users', getAllUsers)
app.get(baseUrl+'/users/:userId')

module.exports = (app);

Ниже приведена структура mongoose, которую я настроил

// importing mongoose module
const mongoose = require('mongoose')
// import schema 
const Schema = mongoose.Schema;

let userSchema = new Schema(
    {
        userId: {
            type: String,
            unique: true
        },
        firstName: {
            type: String,
            default: ''
        },
        lastName: {
            type: String,
            default: ''
        },
        email: {
            type: String,
            default: ''
        }
    }
)

mongoose.model('User', userSchema);

module.exports = mongoose.model('User', userSchema)

Должен появиться пустой объект или ошибка с сообщением «Пользователи не найдены»

1 Ответ

2 голосов
/ 08 апреля 2019

Вам не нужен baseURL при определении маршрутов с помощью экспресс.Если вы следовали документации, вы, наверное, видели, что

app.get('/users', getAllUsers);

достаточно для определения вашего маршрута.

Кроме того, вы определяете Router в своем коде, но не используетеit.

Наконец, знаете ли вы, что ваша переменная db, определенная в обратном вызове listen(), нигде не доступна?Он определен внутри обратного вызова, поэтому он умирает сразу после вызова этой функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...