无法获得特定路线

时间:2019-04-08 09:11:41

标签: node.js rest express

我需要能够从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);

下面是我设置的猫鼬结构

// 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 个答案:

答案 0 :(得分:2)

使用express定义路由时,不需要baseURL。如果您已按照文档进行操作,那么您肯定已经看到了

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

足以定义您的路线。

此外,您在代码中定义了Router,但是您没有使用它。

最后,您是否知道db回调中定义的listen()变量在任何地方都无法访问?它是在回调内部定义的,因此在调用该函数后便会消失。