繁体   English   中英

当我使用PassportJS通过Mongoose在NodeJS中注册新用户时出现400错误请求

[英]400 Bad Request when i register a new user in NodeJS via Mongoose using PassportJS

我正在创建一个注册表单,用户需要在其中输入他的emailid(用户名),密码,DOB,地址,电话号码的详细信息。 所有字段都是必填字段,此处emailid用作用户名。 我已经设计了我的猫鼬模式

 var mongoose = require('mongoose');
 var Schema = mongoose.Schema;
 var passportLocalMongoose = require('passport-local-mongoose');

 var User = new Schema({
    username: String,
    password: String,
    phoneno: {
        type: Number,
        unique: true,
        required: true
   },
   Address : {
       type: String,
       required: true
   },
   Dob: {
       type: String,
       required: true
   }
 },{
   timestamps: true
 });

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

我的用户路由器如下

var express = require('express');
var UserDetails = express.Router();
var userSchema=require('../models/user');
var passport = require('passport');
const mongoose = require('mongoose');
var Verify    = require('./verify');

UserDetails.post('/register', function(req, res, next) {
var newUser = new userSchema({
    username : req.body.email,
    Dob : req.body.dob,
    Address : req.body.address,
    phoneno : req.body.phoneno
 });
userSchema.register(newUser,req.body.password, function(err, user) {
    if (err) {
        console.log(err);
        return res.status(500).json({err: err});
    }
    passport.authenticate('local')(req, res, function () {
        console.log(req);
        console.log(res);
        return res.status(200).json({status: 'Registration Successful!'});
    });
 });
});

这是我通过PostMan发送的json对象

 {"email":"kannaa.in","password": "abcdef","phoneno":96930,"address":"396 SM Road","dob":"14-05-1992"}

但是在控制台和邮递员中,如果我尝试执行该操作,则会说请求很差,但是它将值存储在DB中。 我找不到错误。

因此,在没有人回答之后,我发现自己自己的问题是PassportJS期望该请求包含req.body.username,这与请求方发送的其他数据是否需要req.body.username无关。 因此,我需要更改的只是电子邮件而不是我在邮递员中将其设置为用户名,并且它就像魅力一样工作。

我的邮递员资料

{"username":"kannaa.in","password": "abcdef","phoneno":96930,"address":"396 SM Road","dob":"14-05-1992"}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM