2
私のroutes.jsファイルの#44行目を参照して、データとハッシュ引数が必要であることを示すbcryptエラーが発生しました。私が知ることから、私はその情報を渡しています.bcrypt.compareの最初のパラメーターはユーザーが入力したパスワードで、2番目のパラメーターはdbから取得したハッシュ・パスワードです。私は間違って何をしていますか?bcryptエラー:データとハッシュ引数が必要です
bcrypt.compare(req.params.password, user.password, function...
routes.js
'use strict'
var express = require('express');
var router = express.Router();
var User = require('../app/models/user');
//password hashing
var bcrypt = require('bcrypt');
var count = 0;
router.use(function(req, res, next) {
count++;
console.log('API hit count = %s', count);
next();
});
// /users post(create new user) get(specific user)
router.route('/users')
.post(function(req,res) {
var user = new User();
user.username = req.body.username;
user.password = bcrypt.hashSync(req.body.password, 10);
//save the user and checkfor errors
user.save(function(err) {
if (err) {
res.send(err);
} else {
res.json({message: "User created!"});
}
});
})
router.route('/users/:username')
.get(function(req, res) {
var query = {
username: req.params.username,
};
User.findOne(query, function(err, user) {
if (err) {
res.send(err);
} else {
bcrypt.compare(req.params.password, user.password, function(err, res) {
if(err) {
console.log('Comparison error: ', err);
}
})
res.json(user);
}
});
})
'bcrypt.compare'が呼び出される直前にブレークポイントを設定し、' req.params.password'と 'user.password'が何であるかを見てください。 – bejado
@bejado Dammit、私はapp.jsに間違いがあり、未定義のパスワードを送りました。助けてくれてありがとう。 – jmcgui05