最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

User.id未定义

IT培训 admin 4浏览 0评论

User.id未定义

我正在建立一个用户可以注册的网站,但是当注册完成时没有任何反应,它应该进入网站。

我用console.log测试了它,发现我的user.id未定义。

这是我在服务器端的注册:

const handleRegister = (req, res, db, bcrypt) => {
    const { email, name, password } = req.body;
    if (!email || !name || !password) {
        return res.status(400).json('incorrect form submission');
    }
    const hash = bcrypt.hashSync(password);
    db.transaction(trx => {
        trx.insert({
            hash: hash,
            email: email
        })
        .into('login')
        .returning('email')
        .then(loginEmail => {
            console.log(email)
            return trx('users')
            .returning('*')
            .insert({
                email: email,
                name: name,
                joined: new Date()
            })
            .then(user => {
            res.json(user[0]);
            })
        })
        .then(trxmit)
        .catch(trx.rollback)
    })

    .catch(err => res.status(400).json('unable to register ' + err))

}module.exports = {
handleRegister: handleRegister
};

这是我在前端的注册:

import React from 'react';

class Register extends React.Component {
    constructor(props){
        super(props);
        this.state = {
            name: '',
            email: '',
            password: ''
        }
    }

    onNameChange = (event) => {
        this.setState({name: event.target.value})
    }

    onEmailChange = (event) => {
        this.setState({email: event.target.value})
    }

    onPasswordChange = (event) => {
        this.setState({password: event.target.value})
    }

    onSubmitSignIn = () => {
        fetch('http://localhost:3000/register', {
            method: 'post',
            headers: {'Content-Type': 'application/json'},
            body: JSON.stringify({
                name: this.state.name,
                email: this.state.email,
                password: this.state.password   
            })
        })
        .then(response => response.json())
        .then(user => {
         console.log(user.id);
         if (user.id) {
            console.log(user, user.id);
            this.props.loadUser(user)
            this.props.onRouteChange('home');
        }console.log(user.id);
      })
    }

它位于我已设置console.log的前端,它从不进入if语句。我该如何解决?

回答如下:

如果您使用的是mongodb,则id字段定义为_id

User.id未定义

我正在建立一个用户可以注册的网站,但是当注册完成时没有任何反应,它应该进入网站。

我用console.log测试了它,发现我的user.id未定义。

这是我在服务器端的注册:

const handleRegister = (req, res, db, bcrypt) => {
    const { email, name, password } = req.body;
    if (!email || !name || !password) {
        return res.status(400).json('incorrect form submission');
    }
    const hash = bcrypt.hashSync(password);
    db.transaction(trx => {
        trx.insert({
            hash: hash,
            email: email
        })
        .into('login')
        .returning('email')
        .then(loginEmail => {
            console.log(email)
            return trx('users')
            .returning('*')
            .insert({
                email: email,
                name: name,
                joined: new Date()
            })
            .then(user => {
            res.json(user[0]);
            })
        })
        .then(trxmit)
        .catch(trx.rollback)
    })

    .catch(err => res.status(400).json('unable to register ' + err))

}module.exports = {
handleRegister: handleRegister
};

这是我在前端的注册:

import React from 'react';

class Register extends React.Component {
    constructor(props){
        super(props);
        this.state = {
            name: '',
            email: '',
            password: ''
        }
    }

    onNameChange = (event) => {
        this.setState({name: event.target.value})
    }

    onEmailChange = (event) => {
        this.setState({email: event.target.value})
    }

    onPasswordChange = (event) => {
        this.setState({password: event.target.value})
    }

    onSubmitSignIn = () => {
        fetch('http://localhost:3000/register', {
            method: 'post',
            headers: {'Content-Type': 'application/json'},
            body: JSON.stringify({
                name: this.state.name,
                email: this.state.email,
                password: this.state.password   
            })
        })
        .then(response => response.json())
        .then(user => {
         console.log(user.id);
         if (user.id) {
            console.log(user, user.id);
            this.props.loadUser(user)
            this.props.onRouteChange('home');
        }console.log(user.id);
      })
    }

它位于我已设置console.log的前端,它从不进入if语句。我该如何解决?

回答如下:

如果您使用的是mongodb,则id字段定义为_id

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论