Мангуст не взаимодействует с БД - PullRequest
0 голосов
/ 28 октября 2018

Код никогда не выполняется до console.log("in"), поэтому findOne не запускается.RoboT3 также не показывает auth дБ.Версия Mongo является последней версией 4.0.3.

controllers / authentication.js

const User = require('../models/user');

exports.signup = (req, res, next) => {
    console.log(req.body)
    const email = req.body.email;
    const password = req.body.password;
    // check for duplicate users by email
    User.findOne({email: email}, (err, existingUser) => { 
        console.log("in")
        if (err) {return next(err)}

        // if duplicate found, return error
        if (existingUser) {
            return res.status(422).send({error: 'Email is in use'});
        }

        const user = new User({
            email: email,
            password: password
        });

        user.save((err) => {
            if (err) {return next(err); }
            res.json(user);
        })

    });
    // if not, create and save record and return
}

index.js

const express = require('express');
const http = require('http');
const bodyParser = require('body-parser');
const morgan = require ('morgan');
const router = require('./router');
const mongo = require('mongodb');


mongo.connect('mongodb://localhost:27017/auth', { useNewUrlParser: true });

const App = express();
// App setup
App.use(morgan('combined'));
App.use(bodyParser.json());
router(App);

// Server setup
const port = process.env.PORT || 3090;
const server = http.createServer(App);

server.listen(port);

console.log("server running on port " + port);

router.js

const authentication = require('./controllers/authentication');

module.exports = function (app) {
    app.post('/signup', authentication.signup);
}

models / user.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const userSchema = new Schema ({
    email: {type: String, unique: true, lowercase: true},
    password: String
});

const ModelClass = mongoose.model('user', userSchema);

module.exports = ModelClass;

1 Ответ

0 голосов
/ 29 октября 2018

Почему бы не использовать мангуст в вашем index.js?

var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost:27017/auth', { useNewUrlParser: true });

let db = mongoose.connection;
db.once('open', function callback () {
  console.log("connected to db");
});
...