![](/img/trans.png)
[英]400 BAD REQUEST when POST using Axios in React with Nodejs/Express
[英]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.