2016-04-04 5 views
3

Ich habe ein Konto mit mongolab(mlab). Ich versuche, Daten für die Benutzer mit postman Add-on von Chrome-Browser zu veröffentlichen. Ich bekomme immer Fehler. Ich konnte keine Daten posten. Ich habe es mit anderen Wegen versucht. aber kein Glück.`mongolab` - Fehler auf Post, nicht in der Lage, eine Daten zu senden

jemand mir helfen, dieses Problem zu sortieren?

hier ist mein api.js:

var 
    User  = require('../models/user'), 
    config  = require('../../config'), 
    secretKey = config.secretKey; 


module.exports = function(app, express) { 

    var api = express.Router(); 

    api.post('/signup', function (req, res) { 

     var user = new User({ 

      name:req.body.name, 
      username:req.body.username, 
      password:req.body.password 

     }); 

     user.save(function(err){ 

      if(err){ 
       res.send(err); 
       return; 
      } 

      res.json({message:'User has been Created!'}); 
     }); 
    }); 


    api.get('/users', function(req, res) { 

     User.find({}, function(req, users){ 
      if(err) { 
       res.send(err); 
       return; 
      } 

      res.json(users); 
     }) 

    }); 

    return api; 

} 

config.js:

module.exports = { 
    "database":"mongodb://xxx:[email protected]:15700/arifstory", 
    "port" : process.env.PORT || 3000, 
    "secretKey" : "YourSecretKey" 
} 

Und die user.js:

var 
    mongoose = require('mongoose'), 
    Schema  = mongoose.Schema, 
    bcrypt  = require('bcrypt-nodejs'); 


var UserSchema = new Schema({ 

    name : String, 
    userName:{ type:String, required:true, index : { unique: true }}, 
    password : { type:String, required : true, select : false } 

}); 

UserSchema.pre('save', function(next) { 

    var user = this; 

    if(!user.isModified('password')) return next(); 

    bcrypt.hash(user.password, null, null, function(err, hash) { 
     if(err) return next(err); 

     user.password = hash; 
     next(); 
    }); 

}); 

UserSchema.methods.comparePassword = function(password) { 

    var user = this; 

    return bcrypt.compareSync(password, user.password); 

} 

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

ich wirklich nicht in der Lage, das Problem hier zu verstehen. bitte jemand mir helfen?

Fehler

{ 
    "message": "User validation failed", 
    "name": "ValidationError", 
    "errors": { 
    "userName": { 
     "message": "Path `userName` is required.", 
     "name": "ValidatorError", 
     "properties": { 
     "type": "required", 
     "message": "Path `{PATH}` is required.", 
     "path": "userName" 
     }, 
     "kind": "required", 
     "path": "userName" 
    }, 
    "password": { 
     "message": "Path `password` is required.", 
     "name": "ValidatorError", 
     "properties": { 
     "type": "required", 
     "message": "Path `{PATH}` is required.", 
     "path": "password" 
     }, 
     "kind": "required", 
     "path": "password" 
    } 
    } 
} 
+0

Ist ihre spezifische Nachricht mit dem Fehler, ich habe nie Chrome-Erweiterung verwendet, um Daten hinzuzufügen, so dass dies dumm klingen mag. –

+0

@GandalftheWhite - Bitte beachten Sie mein Update für "Fehler" Was ich erhalte – 3gwebtrain

+0

@ 3gwebtrain in Ihrem Schema haben Sie 'userName', aber Sie setzen' username' in api.js – war1oc

Antwort

0

Die aus Chrom gesendeten Daten konnten nicht definiert werden.

Drucken Sie es in der Konsole aus, indem Sie die unteren beiden Zeilen oberhalb der Funktion user.save in die Datei api.js einfügen: console.log (req.body.username); console.log (req.body.password);

Wenn es als undefiniert angezeigt wird, dann überprüfe "x-www-form-urlencoded" unter "body" in Postman und gib Benutzernamen und Passwort darunter an.

Verwandte Themen