问题描述
我对我的小项目有点困惑。 我在节点中做了一条路线:
router.post('/signup',userController.signUp);
这是用于注册的控制器:
const signUp = async (req,res,next) => {
const {name,email,password} = req.body;
// check if user already exists
let existingUser;
try{
existingUser = await User.findOne({email});
} catch (e){
const error = new HttpError('Signup up Failed,please try again later',500);
return next(error);
}
if (existingUser){
const error = new HttpError('User already exists,please login instead',422);
return next(error);
}
// hash password
let hashedPassword;
try{
hashedPassword = await bcrypt.hash(password,12);
} catch (e){
const error = new HttpError('Could not crate user,please try again',500);
return next(error);
}
// create new user
const createdUser = new User({
name,password: hashedPassword
})
// save new user
try {
await createdUser.save();
} catch (e){
const error = new HttpError('Signing up Failed,please try again.',500);
return next(error);
}
// generate token
let token;
try {
token = jwt.sign({
userID: createdUser.id,email: createdUser.email
},'supersecret_dont_share',{expiresIn: '1h'});
} catch (e) {
const error = new HttpError('Signing up Failed,500);
return next(error);
}
// send response
res.status(201).json({user: createdUser.id,email: createdUser.email,token });
}
我正在尝试从前端创建用户:
const getUsers = async (e) => {
e.preventDefault();
const data = {
"name": "testttt","password": "testtt2","email": "test@das.com"
}
const response = await fetch('http://localhost:5000/users/signup',{
method: 'POST',body: JSON.stringify(data)
});
console.log(response)
return response.json();
}
我得到了这个:
https://i.stack.imgur.com/bTMHM.png
我也在 app.js
(服务器)中使用:
app.use(bodyParser.json());
// cors headers
app.use( (req,next) => {
res.setHeader('Access-Control-Allow-Origin','*');
res.setHeader('Access-Control-Allow-Headers','Origin,X-Requested-With,Content Type,Accept,Authorization');
res.setHeader('Access-Control-Allow-Methods','GET,POST,PATCH,DELETE');
next();
} );
// routes
app.use('/users',userRoutes);
问题是我无法创建新用户,当我在控制器中控制台日志 req.body
时,它向我显示一个空对象,但是当我尝试从邮递员创建用户时,它可以工作。
有人可以帮我吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)