猫鼬不与数据库交互

时间:2018-10-28 20:05:38

标签: node.js mongodb mongoose mongoose-schema

代码永远不会执行到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 :(得分:1)

为什么不在您的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");
});