【问题标题】:how get data in nodejs received from frontend in reactjs?如何获取从reactjs前端接收的nodejs数据?
【发布时间】:2020-11-23 22:29:54
【问题描述】:

我是 reactjsnodejs 的初学者,我认为我成功地将数据从前端发布到后端,但现在我想 获取并显示收到来自控制台前端的数据,但我不知道该怎么做,有人在这种情况下指导我吗?因为当我在控制台中打印诸如 console.log(data) 之类的东西时,它会在控制台中显示一些 日志 但我想在控制台中显示 收到的数据强>

demoLogin.js

// this is frontend in reactjs

    import React, { Component } from 'react'
    import axios from 'axios'
    
    class Login extends Component {
    constructor(props) {
      
      super(props)
      
      this.state = {
            username:'',   
            password:''
            
      }
    }
    
    usernameHandler=event=>{
      this.setState({
        username:event.target.value,
        
      })
    }
    passwordHandler=event=>{
      this.setState({
      password:event.target.value
      })
    }
    submitHandler=event=>{
      let data = {
        username: this.state.username,
        password: this.state.password,
        
    };
      event.preventDefault()
            console.log(this.state)
            axios.post('http://localhost:8080/note', data,{
          headers: {'Content-Type':'application/json'}
        })
                .then(res => {
                    console.log(res)
                })
    
        
    }
      render() {
        const {username, password}=this.state
            return (
            <div className="custom_wrapper">
                <div className="custom_form-wrapper">
                  <h1>SIGN IN INTO YOUR ACCOUNT</h1>
                  <form onSubmit={this.submitHandler} >
                    <div className="custom_username" >
                      <label htmlFor="username">User Name</label>
                      <input className='custom_input'
                        placeholder="example@email.com"
                        type="text"
                        name="username"
                        value={username}
                        onChange={this.usernameHandler}
                      /><br></br>
                      
                    
                      <label htmlFor="password">Password</label>
                      <input className='custom_input'
                        placeholder="password"
                        type="password"
                        name="password"
                        value={password}
                        onChange={this.passwordHandler}
                      />
                      <button type="submit" >Login</button>
                    </div>
                    
                    </form>
                    
                </div>
              </div>
            )
        }
    }
    export default Login

server.js

//this is backend in nodejs

    var restify=require('restify')
    const corsMiddleware = require('restify-cors-middleware2');
    const { data } = require('jquery');
    var server=restify.createServer() //server created
    
    server.use(
        function crossOrigin(req,res,next){
          res.header("Access-Control-Allow-Origin", "*");
          res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
          res.setHeader('Access-Control-Allow-Credentials', true); // If needed
          res.header("Access-Control-Allow-Origin", "*");
          res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
          res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
          return next();
        }
      );
    const cors = corsMiddleware({
      preflightMaxAge: 5, //Optional
      origins: ['*'],
      allowHeaders: ['*'],
      exposeHeaders: ['*']
    })
    
    server.pre(cors.preflight)
    server.use(cors.actual)
    server.use(restify.plugins.bodyParser());
    //get data from login form
    function userCreation(req, res, next) {
      console.log('data received...')
      console.log(res.json(data))
      return next();
    }
    
    server.post('/note', userCreation);  
    server.listen(8080, function(){
        console.log("server started...")
    })

【问题讨论】:

    标签: node.js reactjs axios restify


    【解决方案1】:

    只需向您 POST 编辑的那个网址创建一个 GET 请求。


    import axios from 'axios'
    
    class App extends Component {
      constructor (props) {
        super(props)
        this.state = {
          username: ''
        }
    
        this.handleClick = this.handleClick.bind(this)
      }
    
      handleClick () {
        axios.get('http://localhost:8080/note')
          .then(response => this.setState({username: response.data.name}))
      }
    
      render () {
        return (
          <div className='show_my__username'>
            <button className='button' onClick={this.handleClick}>Click Me</button>
            <p>{this.state.username}</p>
          </div>
        )
      }
    }
    

    【讨论】:

    • 我想从前端发布数据并将该数据提取到后端
    猜你喜欢
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 2020-02-13
    • 2020-08-31
    • 1970-01-01
    • 2018-11-03
    • 2018-10-09
    • 2019-09-16
    相关资源
    最近更新 更多