简体   繁体   English

fetch:从主体解析器获取未定义的数据(Express,节点js)

[英]fetch:undefined data getting from body parser (Express,node js)

I am new to React js and node js .This is a simple problem but I don't know how to solve it.I am using fetch which is light weight to post data and receiving that data from bodyparser.But it always undefined 我是React js和node js的新手,这是一个简单的问题,但我不知道如何解决,我正在使用重量轻的fetch来发布数据并从bodyparser接收该数据,但始终未定义
form.js form.js

import React from 'react';
    import Fetch from 'whatwg-fetch';

    class Form extends React.Component{
       constructor(props){
           super(props);
           this.state = {
               value:'',
               posted:''
           }
       }

        onPost(e){
            e.preventDefault();
            // console.log(this.refs.email.value);
            // console.log(this.refs.name.value);
            if(this.refs.email.value && this.refs.name.value != ''){
               fetch('/post',{
                   method:'POST',

                   body:JSON.stringify({
                       email:this.refs.email.value,
                       name:this.refs.name.value
                   })
               })
            }
        }
        render(){
       console.log(this.state);
            return (
                <div>
                    <form className="postform" onSubmit={this.onPost.bind(this)}>
                        <label>Email Addres</label>
                        <input type="email" ref="email" className="form-control"/>
                        <label>Name</label>
                        <input type="text" ref="name" className="form-control"/>
                        <br/>
                        <br/>
                        <button type="submit" className="btn btn-primary">Post To server</button>
                    </form>

                </div>
            )
        }
    }

    export default Form;

server.js server.js

import express from 'express';
import bodyParser from 'body-parser';


const app = express();
const jsonParser = bodyParser.json();



app.set('view engine','ejs');
app.use(express.static('./public'));

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));



app.get('*',(req,res)=>{
   res.render('index')

});

app.post('/post',(req,res)=>{
    console.log(req.body);//undefines
    res.send('Ok ')

});

app.listen(3000,err=>{
   if(err) throw err;
    console.log('Im In at 3000')
});

Try this: 尝试这个:

Replace 更换

app.use(bodyParser.urlencoded({ extended: false }));

with

app.use(bodyParser.urlencoded());

OR 要么

app.use(bodyParser.urlencoded({ extended: true }));

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

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