2016-07-05 11 views
1

私はmongodbを学んでいますが、私はこの壁に走っていますが、私はそれを修正する方法がわかりません。助けてください!それは前に働いていたが、私はポストの要求を行う。この時間は、私があまりにも郵便配達でこの問題を抱えていたenter image description hereMongodb - ユーザー検証に失敗しました

var mongoose  = require('mongoose'); 
var Schema  = mongoose.Schema; 
var 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); 

var express = require('express'); 
var app = express(); 
var bodyParser = require("body-parser"); 
var morgan = require('morgan'); 
var mongoose = require('mongoose'); 
var port = process.env.PORT || 8080; 
var User = require('./app/models/user'); 


app.use(bodyParser.urlencoded({extended: true})); 
app.use(bodyParser.json()); 


app.use(function(req,res,next){ 
    res.setHeader('Acess-control-allow-Origin', '*'); 
    res.setHeader('Acess-control-Allow-Methods', 'GET, POST'); 
    res.setHeader('Acess-Control-Allow-Headers', 'X-Requested-With, content-type,\Authorization'); 
    next(); 
}); 

app.use(morgan('dev')); 

mongoose.connect('mongodb://localhost:27017/myDatabase'); 

app.get('/', function(req, res){ 
    res.send('Welcome to thome page'); 
}); 

var apiRouter = express.Router(); 

apiRouter.use(function(req, res, next){ 
    console.log('Somebody just came to our app'); 

    next(); 
}); 

apiRouter.get('/', function(req, res){ 
    res.json({message: 'Hooray! Welcome to our api1'}); 
}); 

app.use('/api', apiRouter); 

apiRouter.route('/users') 

     .post(function(req,res){ 

      var user = new User(); 

      user.name = req.body.name; 
      user.username = req.body.username; 
      user.password = req.body.password; 

      user.save(function(err){ 
      if(err){ 
       if(err.code == 1000) 
       return res.json({success: false, message: "A user with that username already exists"}); 
       else 
       return res.send(err); 
      } 
       res.json({message: "User created"}); 
      }); 
     }); 


app.listen(port); 
console.log("Magic happens on port " + port); 
+0

これはモンゴースですよね?あなたはあなたの質問に少し明確にしたいかもしれません。 – HexCoder

+0

そうです、それはマングースです。 – spaceDog

+0

[Express jsフォームデータ](http://stackoverflow.com/questions/24800511/express-js-form-data)の可能な複製。私はあなたがあなたのトラブルを解決することを見つけるだろうと思う。 –

答えて

1

ポストマン「ユーザーの検証」で、このエラーメッセージが表示されます。 は、次にiがJSON(アプリケーション/ JSON)ヘッダと代わりx-www-form-urlencodedでデータを使用することを決めました。

{"name" : "Holly", 
"username" : "Hollylawly", 
"password" : "supersecret"} 

the image for postman req

+0

回答ありがとうございました。私は生データを使用しようとしましたが、私はまだ同じエラーメッセージがあります。 – spaceDog

0

私は郵便配達を再インストールすることで、固定: あなたのケースでは、このようにそれを使用することができます。

ご質問いただきありがとうございます。

ありがとうございました。

関連する問題