Saturday 31 August 2019

[Help] Why am I still getting a 500 error when I'm doing a POST postman request, everything looks fine?

When I try to make a post request I get no response, and I saw that I was actually getting a 500 error, so it's something on my end, but I have no clue what it could be. What's wrong with this code? By the way, I'm following this tutorial.File Structure:​https://i.redd.it/hrfban3r4tj31.pngApp.js:const express = require('express'); const app = express(); const mongoose = require('mongoose'); const morgan = require('morgan'); const bodyParser = require('body-parser'); const cookieParser = require('cookie-parser'); require('dotenv').config(); //import routes const userRoutes = require('./routes/user') const port = process.env.PORT || 8000; const database = process.env.DATABASE; //MIDDLEWARE app.use(morgan('dev')); app.use(bodyParser.json()); app.use(cookieParser()); //routes app.use('/api', userRoutes); //db mongoose.connect(database, { useNewUrlParser:true, useCreateIndex:true }).then(()=>{ console.log('Connected to database!') }) //run server app.listen(port, ()=>{ console.log(`listening on port ${port}`) }) /routes/user.js:const express = require("express"); const router = express.Router(); const { signup } = require("../controllers/user"); router.post("/signup", signup); module.exports = router; /controllers/user.js:const User = require('../models/user'); exports.signup = (req,res)=>{ console.log('req.body', req.body) const user = new User(req.body); user.save((err,user)=>{ if (err) { return res.status(400).json({ error }); } res.json({ user }); }) } Model:const mongoose = require('mongoose'); const crypto = require('crypto'); const uuidv1 = require('uuid/v1'); const userSchema = new mongoose.Schema({ name: { type:String, trim:true, required: true, maxlength: 32 }, email: { type:String, trim:true, required: true, unique: 32 }, hashed_password: { type:String, required: true }, about:{ type:String, trim:true }, salt:String, role: { type: Number, default: 0 }, history:{ type: Array, default: [] } }, {timestamps:true}); //virtual field userSchema.virtual('password') .set(function(password){ this._password = password; this.salt= uuidv1(); this.hashed_password = this.encryptPassword(password); }) .get(function(){ return( this._password ) }) userSchema.methods = { encryptPassword: function(password){ if(!password){ return '' } try{ return crypto.createHmac('sha1', this.salt) .update(password) .digest('hex') } catch(err){ return ''; } } } module.exports = mongoose.model('User', userSchema); Thanks so much! If you need to see anything else let me know!

Submitted August 31, 2019 at 05:04PM by LawlessWalrus1

No comments:

Post a Comment