带有express和webpack的Google API Node.js客户端

时间:2016-08-24 23:35:11

标签: node.js express url-routing

我正在学习如何使用快递。我的最终目标是使用react / d3和Google Analytics的一些数据构建仪表板。现在我有一个本地项目,包括react-webpack-babel。我想使用google-api-nodejs-client来调用Google Analytics。我试图遵循本教程:http://www.2ality.com/2015/10/google-analytics-api.html但我无法运行我的项目。在我的终端中出现了一堆错误,这是主要的错误:

[1] /Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/transformation/file.js:91
[1]         throw new ReferenceError("Unknown option: " + key);
[1]         ^
[1] 
[1] ReferenceError: Unknown option: presets
[1]     at File.normalizeOptions (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/transformation/file.js:91:15)
[1]     at new File (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/transformation/file.js:70:22)
[1]     at transform (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/transformation/index.js:18:14)
[1]     at Object.transformFileSync (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/api/node.js:74:10)
[1]     at compile (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/api/register/node.js:73:20)
[1]     at normalLoader (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/api/register/node.js:119:14)
[1]     at Object.require.extensions.(anonymous function) [as .js] (/Users/myname/Desktop/reactdashboard/node_modules/babel/lib/babel/api/register/node.js:132:7)
[1]     at Module.load (module.js:456:32)
[1]     at tryModuleLoad (module.js:415:12)
[1]     at Function.Module._load (module.js:407:3)

所以这是我的ga.js文件:

#!/usr/bin/env babel-node
import google from 'googleapis';
var fs = require('fs');
import key from '../client_id.json';

const VIEW_ID = 'ga:80220323';

    let jwtClient = new google.auth.JWT(
      key.'mail@domain.com', null, key.'myKey',
      ['https://www.googleapis.com/auth/analytics.readonly'], null);
    jwtClient.authorize(function (err, tokens) {
      if (err) {
        console.log(err);
        return;
      }
      let analytics = google.analytics('v3');
      queryData(analytics);
    });

   function queryData(analytics) {
      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;
            }
            console.log(JSON.stringify(response, null, 4));
          });  
        }

module.exports = {
  ???
};

这是我的server.babel.js文件:

import express from 'express';

const app = express();

app.use('/', express.static('public'));
app.use('/', express.static('src'));

var ga = require('./src/routes/ga');

app.listen(process.env.PORT || 3000);

//templating engine
app.set('views', './src/views');      
app.set('view engine', 'ejs');

app.use('/gadata', ga.queryData());

如果我的问题不够清楚,请帮助我改进,以便找到自己的方式。

编辑#1:

这是我的babelrc:

{
  "presets": [
    "es2015",
    "stage-0",
    "react"
  ],
  "plugins": [
    "transform-runtime",
    "transform-class-properties"
  ]
}

编辑#2:

和我的webpack.config:

module.exports = {
  entry: './public/client.js',
  output: {
    path: './public',
    filename: 'bundle.js'       
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        query: {
          plugins: ['transform-decorators-legacy']
        }
      }
    ]
  },
  resolve: {
    extensions: ['', '.js', '.json'] 
  },
node: {
  fs: "empty",
  net: "empty",
  tls: "empty",
}
};

0 个答案:

没有答案