我正在使用sails.js在支持的应用程序中从newrelic见解中查询数据。我在通用控制器-> newrelic-> number-on-site.js中的功能看起来像
fn: async function (inputs, exits) {
var client = new XMLHttpRequest();
client.open("GET", "https://insights-api.newrelic.com/v1/accounts/<acount_number>/query?nrql=SELECT ...", true);
client.setRequestHeader("Accept", "application/json");
client.setRequestHeader("X-Query-Key", "<my_key>");
client.send();
return exits.success();
}
请注意,该请求作为curl请求工作,因此数据正确,现在Sail引发以下警告。
warn: Files in the `controllers` directory may be traditional controllers or
action files. Traditional controllers are dictionaries of actions, with
pascal-cased filenames ending in "Controller" (e.g. MyGreatController.js).
Action files are kebab-cased (e.g. do-stuff.js) and contain a single action.
The following file was ignored for not meeting those criteria:
warn: - newrelic.ts
这句话到底要说什么?谷歌搜索此错误消息从根本没有带来任何好处。几乎就像我遇到命名问题一样,但是我使用了
sails generate action newrelic.numberOnSite
生成此控制器,所以我不确定发生了什么。
编辑我的路线如下:
'/newrelic/numberOnSite': 'newrelic.numberOnSite',
以防万一。
答案 0 :(得分:1)
您似乎在混用控制器和操作,应该read here或继续阅读。
传统的控制器使用以小写字母结尾的 Controller ,例如。 NewrelicController.js
,并且如上所述,是动作(功能)字典。
一个动作(功能)用烤肉串包装,例如api/controllers/newrelic/number-on-site.js
。
控制器
如果要生成Controller,则不要包含在文件夹中...
sails generate controller newrelic numberOnSite
然后在您的routes.js
中,您应该这样路由...
'GET /newrelic/numberOnSite': 'NewrelicController.numberOnSite',
操作
如果要生成动作,则将其包含在文件夹中...
sails generate action newrelic/numberOnSite
然后在您的routes.js
中,您应该这样路由...
'GET /newrelic/numberOnSite': {action:'newrelic/number-on-site'},
与Sails集合相比,Controller需要的代码更少,尽管Sails v1.0中引入的Actions比Controllers更受青睐,因为它易于维护和调试。