Mongoose 不插入 MongoLab

Mongoose doesn't insert in MongoLab

我正在尝试构建我的第一个 MEAN Stack 应用程序,我正在使用邮递员检查我在数据库中的插入,我收到一条消息说 "user created!",但在检查 MongoLab 中的数据库之后。我没有在集合中插入任何文档。这是我的代码:

这是我的存储库,以备不时之需: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:password@dsXXXXXX.mlab.com: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);

当我 运行 您的代码成功运行时。

我注意到两件事:

  1. 您的 package.json 文件包含 mongojs,但似乎未被使用。当您调用 npm install.

  2. 时,mongooose 包将提取它所需的 mongodb 依赖项
  3. 您的连接字符串以明文形式包含在您的存储库中。尝试养成通过配置文件将任何敏感信息导入您的应用程序的习惯。

例如,创建一个配置文件,例如./config/db.js:

module.exports = {
   'uri' : 'mongodb://user:pwd@host1:port1/dbname'
}

然后将文件导入您的应用程序:

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

然后可以在您的代码中使用该变量:

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

最后,将此文件 (./config/db.js) 添加到您的 .gitignore