2016-12-05 1 views
0

Ich versuche, meine erste MEAN Stack-Anwendung zu erstellen, und ich bin Postbote mit meiner Einfügung in meiner DB zu überprüfen, und ich erhalte eine Meldung, die besagt, „Benutzer erstellt!“, Aber nach der Überprüfung die DB in MongoLab. Ich bekomme kein Dokument in die Sammlungen eingefügt. hier mein Code ist:Mongoose einführen lassen, nicht in MongoLab

Hier ist meine Repo auf, falls Sie es: https://github.com/pevargasg/joberistyNode

app.js

var express = require('express') 
var app = express() 
var morgan = require('morgan'); 
var mongoose = require('mongoose'); 
var bodyParser = require('body-parser'); 

//My one modules 
var User = require('./app/models/user'); 
var Company = require('./app/models/company'); 

//Middleware 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended: true})); 
app.use(morgan('dev')); 

//Connection to DB 
//mongoose.Promise = global.Promise; 
//Feel free to use your own mongoLab link below for testing purposes 
mongoose.connect('mongodb://user:[email protected]:19768/jobersity',function(err){ 
    if(err){ 
     console.log("Not connection to DB" + err); 
     throw err; 
    } 
    else{ 
     console.log("Connected to DB"); 
    } 
}); 
//Routes 
/*app.get('/', function (req, res) { 
    res.send('Hello World!') 
})*/ 

//Creating Users 
app.post('/users',function(req,res){ 
    //res.send('test'); 
    var user = new User();  
    user.username = req.body.username; 
    user.password = req.body.password; 
    user.email = req.body.email; 
    /*user.firstName = req.body.firstName; 
    user.lastName = req.body.lastName;  
    user.major = req.body.major;*/ 

    //Save user 
    user.save(); 
    res.send('user created!'); 


}); 

user.js

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

//Table for usersSchema 
var UserSchema = new Schema({ 
    username:{type: String, lowercase: true, required: true, unique: true}, 
    password:{type: String, required: true}, 
    email:{type: String, lowercase: true, required: true, unique: true}, 
    /*firstName: {type: String, required: true}, 
    lastName: {type: String, required: true}, 
    major: {type: String, required: true}, 
    jobsApplied:[{ 
     title: String, 
     description: String, 
     position: String 
    }]*/ 
}); 

module.exports = mongoose.model('User', UserSchema); 
+0

Code funktioniert tatsächlich Ich habe den falschen Weg getestet. Vielen Dank! –

Antwort

1

Ihr Code funktioniert erfolgreich, wenn ich es laufen .

Zwei Dinge, die ich habe bemerkt:

  1. Ihre package.json Datei mongojs enthält, wenn es nicht zu gewöhnen scheint. Das mongooose Paket wird die Mongodb-Abhängigkeit abrufen, die es benötigt, wenn Sie npm install aufrufen.

  2. Ihre Verbindungszeichenfolge wird im Klartext in Ihrem Repository enthält. Versuchen Sie, sich über eine Konfigurationsdatei daran zu gewöhnen, vertrauliche Informationen in Ihre App zu importieren.

Zum Beispiel, erstellen Sie eine Konfigurationsdatei, z. ./config/db.js:

module.exports = { 
    'uri' : 'mongodb://user:[email protected]:port1/dbname' 
} 

Dann die Datei in Ihre Anwendung importieren:

var dbConfig = require('./config/db.js'); 

Die Variable kann dann in Ihrem Code verwendet werden, verwendet werden:

mongoose.connect(dbConfig.uri, function(err){ ... }) 

Schließlich fügen Sie diese Datei (./config/db.js) zu Ihrem .gitignore.