Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在.NET核心Web应用程序中执行Node.JS代码_Javascript_C#_Node.js_Asp.net Core - Fatal编程技术网

Javascript 在.NET核心Web应用程序中执行Node.JS代码

Javascript 在.NET核心Web应用程序中执行Node.JS代码,javascript,c#,node.js,asp.net-core,Javascript,C#,Node.js,Asp.net Core,代码在这里 module.exports = function (callback, ID, PATHWAY, CAMPAIGN) { var google = require('googleapis'); var analytics = google.analytics('v3'); var key = require('JSON PATHWAY'); var VIEW_ID = 'VIEW ID'; var jwtClient = new goog

代码在这里

module.exports = function (callback, ID, PATHWAY, CAMPAIGN) {

    var google = require('googleapis');
    var analytics = google.analytics('v3');
    var key = require('JSON PATHWAY');
    var VIEW_ID = 'VIEW ID';

    var jwtClient = new google.auth.JWT(
        'SERVICE ACCOUNT', null, key.private_key,
        ['https://www.googleapis.com/auth/analytics.readonly'], null
    );

    jwtClient.authorize(function (err, tokens) {
        console.log('Calling tokens');
        if (err) {
            console.log(err);
        } else {
            analytics.data.ga.get({
                'auth': jwtClient,
                'ids': VIEW_ID,
                'metrics': 'ga:pageViews',
                'dimensions': 'ga:browser',
                'start-date': '30daysAgo',
                'end-date': 'yesterday',
                'sort': '-ga:visits',
                'max-results': 100,
                'filters': 'ga:campaign==NAME', 
            }, function (err, response) {
                if (err) {
                    console.log(err);
                } else {
                    var result = JSON.stringify(response, null, 4);
                }
            });
        }
    });

    callback(/* error */ null, result);
} 
上面是我的Node.JS代码

这是我的控制器代码

public async Task<IActionResult> TestNode([FromServices] INodeServices nodeServices)
{
    var result = await nodeServices.InvokeAsync<Object>("./wwwroot/js/GoogleAnalytics", 1, 2, 3);
    return Ok(result);
}
public async Task TestNode([FromServices]INodeServices nodeServices)
{
var result=await nodeServices.InvokeAsync(“./wwwroot/js/GoogleAnalytics”,1,2,3);
返回Ok(结果);
}
所有这些都相当简单和直接,除了我运行它时的形式。我明白了

因此,我检查了以下内容:

  • 古格里皮出现了
  • google.analytics文件夹和v3代码在它应该在的地方
  • 节点的版本是最新的
  • 节点正在运行
  • Node.JS代码运行良好(在核心之外)

您有正确的版本吗?您正在调用
google.analytics('v3')
,但根据此分析,v4将不再使用。也许您正在运行版本4?您好,谢谢您的回复。很好,我刚刚检查了一下,在analytics根文件夹中似乎没有v4文件。我也把v3改成了v4,但我仍然得到同样的错误“google.analytics不是一个函数。”这一定是我错过的东西。。我还注意到,在VisualStudio的dependencies npm下,你打开googleapi的树,它没有显示google.analytics。那跟它有关系吗?如果是这样的话,你如何添加它或者它应该显示出来?感谢查看源代码->
从“/api/analytics/v3”导出{analytics_v3}所以我假设这就是您想要导入的内容;所以我想这就是你想要导入的。这是通过控制台还是通过代码文件中的import命令完成的。taMaybe在通过节点服务调用此之前,是否尝试直接使用节点运行脚本?