如何从POST请求中获取数据

时间:2017-09-02 15:08:49

标签: javascript json node.js express google-spreadsheet-api

我很困惑如何从帖子请求中获取数据,然后将其发送到工作表。我不知道如何与客户确认。任何帮助将不胜感激,谢谢。

我正在尝试建立一个网络应用程序,这将是一个签入/结帐系统,一旦有人扫描条形码,该条形码的信息将直接进入谷歌电子表格

var express = require('express');//takes everything from the Express library
var app = express(); //calls the express constructor. app is the server object
var fs = require('fs');
var GoogleSpreadsheet = require('google-spreadsheet');
var creds = require('./client_secret.json');


app.use(express.static('public'));

app.get('/', function (req, res) {
    var contents = fs.readFileSync('views/welcome.html').toString();
    res.send(contents);
});

app.get('/info', function (req, res) {
    res.send('Hello Info!');
});

app.get('/checkin', function (req, res) {
    var contents = fs.readFileSync('views/no.html').toString();
    res.send(contents);
    console.log("checking in");
    console.log(req);
});

app.get('/checkout', function (req, res) {
    var contents = fs.readFileSync('views/no.html').toString();
    res.send(contents);
    console.log("checking out");
});

app.post('/checkin', function (req, res){ //someone clicks submit on page from 
get page
    console.log("posting checkin info");


    //getthe data from the POST request LOOOK HERE GET INFO FROM POST REQUEST
    //send it to Sheets
//body-parser method
var ID = data.ID; // sample
//console.log(id);

// Create a document object using the ID of the spreadsheet - obtained from 
its URL.
var doc = new 
GoogleSpreadsheet(________);

// Authenticate with the Google Spreadsheets API.
doc.useServiceAccountAuth(creds, function (err) {

/*  // Get all of the rows from the spreadsheet.
  doc.getRows(2, function (err, rows) {
    console.log(rows);
  });*/

  doc.getInfo(function(err, info) {
  console.log('Loaded doc: '+info.title+' by '+info.author.email);
  sheet = info.worksheets[0];
  console.log('sheet 1: '+sheet.title+' '+sheet.rowCount+'x'+sheet.colCount);
 // step();

   //look at https://www.npmjs.com/package/google-spreadsheet
});
});

//confirm with the client
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

1 个答案:

答案 0 :(得分:2)

要获取POST数据,您需要使用body-parser包。

导入它:

var bodyParser = require('body-parser');

你可以像这样使用它:

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

然后最终在您的中间件中,您可以访问以下数据:

var ID = req.body.ID;