2017-08-09 6 views
0

ユーザーを保存して同時に登録しようとしています。私は同時に両方ともトラブルを抱えています。
私の現在のスキーマ:ユーザーを作成してpassport.jsを使用して認証する

const userSchema = new mongoose.Schema({ 
username: String, 
password: String, 
firstName: String, 
lastName: String, 
player: { 
    type: Boolean, 
    default: true 
    } 
}); 
userSchema.plugin(passportLocalMongoose); 
module.exports = (User, "userSchema"); 

私の現在形:

<form action="/player" method="POST"> 
    <input type="text" name="user[username]" placeholder="username"> 
    <input type="password" name ="user[password]" placeholder="password"> 
    <input type="text" name="user[firstName]" placeholder="First Name"> 
    <input type="text" name="user[lastName]" placeholder="Last Name"> 
    <button>Submit</button> 
</form> 

私は急行、パスポート、パスポートローカル、パスポート・ローカル・マングース、ボディパーサーは、マングース、そして私の中で必要としていますスキーマ。その後

マイapp.jsは次のとおりです。

mongoose.connect(database); 
app.use(bodyParser.urlencoded({extended: true})); 
app.use(require("express-session")({ 
    secret: "Generic Secret Password", 
    resave: false, 
    saveUninitialized: false 
})); 
app.use(passport.initialize()); 
app.use(passport.session()); 
passport.use(new LocalStrategy(User.authenticate())); 
passport.serializeUser(User.serialUser()); 
passport.deserializeUser(User.deserializeUser()); 

//route 
app.post("/player", function(req, res){ 
var newUser = new User({ username: req.body.user.email }); 
User.register(newUser, req.body.user.password, function(err, user){ 
    if(err){ 
     console.log(err); 
     return res.render("new"); 
    } 
    passport.authenticate("local")(req, res, function(){ 
     res.redirect("/player"); 
    }); 
}); 

私が午前問題は、私が提出したときに、ユーザーが「真」に塩、ハッシュ、ユーザ名、およびセットプレーヤーを節約するということですが、それlastNameまたはfirstNameは保存されず、不正な要求(400)が続きます。私はUser.Createを実行することができ、すべてを保存し(ハッシュと塩を除いて)、リダイレクトすることができます。また、 "user [username]"と "user [password]"が "username"と "password"であるようにフォームを設定し、firstNameとlastName以外のすべてを保存するようにして、400のステータスなしで正しくリダイレ​​クトします。私は "usernameField"と "passwordField"のデフォルト入力を変更しようとしましたが、運がなかった。私はさまざまなSOの投稿を見ようとしました。私が見つけた最も近いものはデフォルトを変更する同様の提案でしたので、間違っているかもしれません。私はまた別のルートにもリダイレクトしようとしましたが、まだ運がありません。

これは私が取り組んだ最初のプロジェクトです。コード通りではなく、可能な限り具体的にしようと努力してきました。私は8時間堅実な努力を続けてきました。助けてくれてありがとう!

答えて

0

あなたが助け

var newUser = new User({ username: req.body.user.email, 
         firstName: req.body.user.firstName, 
         lastName: req.body.user.lastName}); 
+0

オーケー異なるパラメータを指定する必要があります。ありがとう。 –

関連する問題