如何将参数传递给Express post HTTP方法?

时间:2016-02-17 13:28:59

标签: javascript rest express vue.js pouchdb

我正在构建一个简单的REST API(PouchDBVue.js)。现在,我可以使用以下几个字段创建SIGSTOP

server.js:

projects

client.js:

var express = require('express')
var PouchDB = require('pouchdb')
var app = express()
var db = new PouchDB('vuedb')

app.post('/projects/new', function(req, res) {
  var data = {
    'type': 'project',
    'title': '',
    'content': '',
    'createdAt': new Date().toJSON()
  }
  db.post(data).then(function (result) {
    // handle result
  })
})

如何传递参数以设置// HTML <input type="text" class="form-control" v-model="title" placeholder="Enter title"> <input type="text" class="form-control" v-model="content" placeholder="Enter content"> <button class="btn btn-default" v-on:click="submit">Submit</button> // JS submit () { this.$http.post('http://localhost:8080/projects/new').then(response => { // handle response }) } title?在REST API中执行此操作的常规方法是什么?

1 个答案:

答案 0 :(得分:4)

在服务器端,您可以使用req.body访问POST请求中客户端发送的数据。

所以你的 server.js 文件就像这样:

var express = require('express')
var PouchDB = require('pouchdb')
var app = express()
var db = new PouchDB('vuedb')

app.post('/projects/new', function(req, res) {
  var data = {
    'type': 'project',
    'title': req.body.title,
    'content': req.body.content,
    'createdAt': new Date().toJSON()
  }
  db.post(data).then(function (result) {
    // handle result
  })
})

在客户端,您必须使用对象作为$http.post的第二个参数传递POST请求的正文。 client.js 看起来像这样:

// HTML

<input type="text" class="form-control" v-model="title" placeholder="Enter title">
<input type="text" class="form-control" v-model="content" placeholder="Enter content">
<button class="btn btn-default" v-on:click="submit">Submit</button>

// JS

submit () {
  this.$http.post('http://localhost:8080/projects/new', {
    title: 'Your title',
    content: 'The content'
  }).then(response => {
    // handle response
  })
}