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在通过节点服务调用此之前,是否尝试直接使用节点运行脚本?