我需要能够从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)
我应该收到一个空对象或错误消息,提示“未找到用户”
答案 0 :(得分:2)
使用express定义路由时,不需要baseURL。如果您已按照文档进行操作,那么您肯定已经看到了
app.get('/users', getAllUsers);
足以定义您的路线。
此外,您在代码中定义了Router
,但是您没有使用它。
最后,您是否知道db
回调中定义的listen()
变量在任何地方都无法访问?它是在回调内部定义的,因此在调用该函数后便会消失。