我正在尝试了解Post Request如何使用express。我的情况我希望能够使用Google AnalyticsAPI更新网络API调用(这是正确的术语吗?)。我在这里或那里找到的大多数例子都是关于处理帖子消息或登录操作。
此后question这是我所理解的。在前端,在这里使用axios是我需要通过的:
axios.post("http://localhost:3000/endpoints", my_parameters)
我可以使用react / redux在服务器端轻松发送。但是在服务器端,我有点迷茫。我有以下API调用:
var key = require('./client_id.json')
var jwtClient = ...
var VIEW_ID = "ga:80820965";
var authorize = function( cb ) {
jwtClient.authorize(function(err) {
if (err) {
console.log(err);
return;
} else {
if ( typeof cb === "function") {
cb();
}
}
});
}
var queryData = function(req, res) {
authorize(function() {
analytics.data.ga.get({
'auth': jwtClient,
'ids': VIEW_ID,
'metrics': 'ga:uniquePageviews',
'dimensions': 'ga:pagePath',
'start-date': '30daysAgo',
'end-date': 'yesterday',
'sort': '-ga:uniquePageviews',
'max-results': 10,
}, function (err, response) {
if (err) {
console.log(err);
return;
}
res.send(response);
});
});
}
module.exports = {
queryData
};
和我的快速服务器设置:
const app = express();
app.use('/', express.static('public'));
app.use('/', express.static('src'));
var ga = require('./src/apicall/gadata');
app.listen(process.env.PORT || 3000);
app.set('views', './src/views');
app.set('view engine', 'ejs');
app.use('/gadata', ga.queryData);
所以在我发送了axios.post
之后,如何在我的server.babel.js
文件中处理它?
我想我需要使用这样的结构:
router.get('/newUser', (req, res) => {
TestUser.save({
name: 'sawyer',
email: 'sawyer@test.com'
}).then((result) => {
console.log('Saved!')
res.send(result)
})
})
但我真的不知道如何重构它以传递我的参数,以便我可以实际更新我的谷歌分析API调用?
感谢。