簡體   English   中英

fetch:從主體解析器獲取未定義的數據(Express,節點js)

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

我是React js和node js的新手,這是一個簡單的問題,但我不知道如何解決,我正在使用重量輕的fetch來發布數據並從bodyparser接收該數據,但始終未定義
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

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')
});

嘗試這個:

更換

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

app.use(bodyParser.urlencoded());

要么

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM