我已经读过很多类似的问题,在默认情况下,在猫鼬上讨论了模型名称的复数形式。尽管在这种情况下似乎不起作用。问题是它返回一个空数组。我的本地mongoDB在“ userData”集合中包含2个文档,它们看起来像这样:
{
"_id" : ObjectId("5dcd0582587ac600ec9323a5"),"name" : "John","surname" : "Doe","team" : "CE","project" : "Project1","id" : "2"
}
然后这就是我的模型User.js
:
const mongoose = require('mongoose');
const { Schema } = mongoose;
const userSchema = new Schema({
name: 'String',surname: 'String',team: 'String',project: 'String',id: 'String'
},{ collection: 'UserData' });
module.exports = mongoose.model('user',userSchema);
这是我的路线userRoutes.js
:
const mongoose = require('mongoose');
const User = mongoose.model('user');
module.exports = (app) => {
app.get(`/`,async (req,res) => {
let users = await User.find();
return res.status(200).send(users);
});
app.post(`/user`,res) => {
let user = await User.create(req.body);
return res.status(201).send({
error: false,user
})
})
app.put(`/user/:id`,res) => {
const { id } = req.params;
let user = await User.findByIdAndUpdate(id,req.body);
return res.status(202).send({
error: false,user
})
});
app.delete(`/user/:id`,res) => {
const { id } = req.params;
let user = await User.findByIdAndDelete(id);
return res.status(202).send({
error: false,user
})
})
}
最后,这是我的出发点index.js
:
const express = require('express');
const mongoose = require('mongoose'); /*-- Import the mongoose module --*/
const bodyParser = require('body-parser');
require('./models/User');
const app = express();
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost:27017/users',{ useUnifiedTopology: true,useNewUrlParser: true })
.then(() => console.log('Database Connection Succesful'))
.catch(err => console.log('Database Connection Error0'));
var db = mongoose.connection;
db.on('error',console.error.bind(console,'MongoDB connection error:'));
app.use(bodyParser.json());
require('./routes/userRoutes')(app);
if (process.env.NODE_ENV === 'production') {
app.use(express.static('client/build'));
const path = require('path');
app.get('*',(req,res) => {
res.sendFile(path.resolve(__dirname,'client','build','index.html'))
})
}
const PORT = process.env.PORT || 5000;
app.listen(PORT,() => {
console.log(`app running on port ${PORT}`)
});
然后,我返回的是一个空数组[]
。任何帮助表示赞赏。