The data which I've passed through postman shows in console but errors shows up soon after. I tried this with v5 and v6 of mongoose. This one is with mongoose v5 installed. Tried the collections module inside this index.js and externally in a different file. Tried with es6 and es5 syntax relating to imports/exports. I've seen many questions similar to mine but the solutions didn't help because i assume they're from older versions.
update: This issue is cause by MongoDB connection issues probably, please refer my other question.
const express = require('express');
const cors = require('cors');
const mongoose = require('mongoose');
const app = express();
const User = require('./models/user.model')
app.use(cors());
app.use(express.json());
mongoose.connect('atlas url', {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true
});
mongoose.connection.once('open', () => {
console.log("Connected to Database Successfully.");
});
app.post('/api/signup', async (req, res) => {
console.log(req.body)
try {
await User.save({
/* Also tried using create here, another time with new instance of User*/
email: req.body.email,
password: req.body.password,
address: req.body.address,
});
res.json({status: 'ok'})
} catch (err) {
console.log(err)
res.json({ status: 'error', error: 'Email already registered' })
}
});
app.listen(1111, () => {
console.log('server started at 1111')
})
This is the external model code.
const mongoose = require('mongoose');
const User = new mongoose.Schema({
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
address: { type: String, required: true },
},
{ collection: 'user-data' }
)
const model = mongoose.model('UserData', User)
module.exports = User