2017-09-02 96 views
0

我很困惑如何從發佈請求中獲取數據,然後將其發送到工作表。我不知道如何與客戶確認。任何幫助將不勝感激,謝謝。如何從POST請求中獲取數據

我想建立一個Web應用程序,這將是一個簽入/籤系統中一旦有人掃描條形碼,從條形碼信息將直接進入谷歌電子表格

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

回答

2

要獲得POST數據你需要使用body-parser包。

導入它:

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

而且你可以使用它像這樣:

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

然後終於在中間件,您可以訪問的數據等:

var ID = req.body.ID;