编程语言
首页 > 编程语言> > javascript – 如何使用POST路由从表单中检索数据?

javascript – 如何使用POST路由从表单中检索数据?

作者:互联网

我试图从Bootstrap表单元素中检索数据,并使用Express和Knex将其保存到PostgresSQL数据库.我运行路线时没有错误;但是,表单中的数据保存为null.这是我的表单元素(我正在使用React):

render() {
  return (
    <form>
      <div className ="form-group">
        <label>Add a Note:</label>
        <textarea className="form-control" name="note" rows="5">
        </textarea>
      </div>
      <button onClick={this.handleClick} className="btn btn-primary" 
      type="submit">Submit</button>
    </form>
  )
}

这是我对POST路线的提取:

handleClick(e) {
  e.preventDefault()
  fetch('/create-note', {
    method: 'POST'
  })
}

这是我的Express POST路线(app.use(bodyParser.json())包含在此文件中):

app.post('/create-note', (req, res) => {
  postNote(req.body.note)
    .then(() => {
      res.sendStatus(201)
    })
})

这是Knex postNote函数:

export function postNote(newNote) {
  const query = knex
    .insert({ note_content: newNote })
    .into('notes')

  return query
}

任何帮助,将不胜感激!

解决方法:

使用POST请求,您可能必须等待数据正文准备就绪.试试这个

app.post('/create-note', (req, res) => {
    var body = '';
    request.on('data',function(data) { body += data; });
    request.on('end', function(data) {
        postNote(body)
            .then(() => {
                res.sendStatus(201)
            })
    });
})

标签:javascript,reactjs,express,knex-js
来源: https://codeday.me/bug/20190701/1349387.html