Kibana v6.2.4
在开发模式下,Kibana URL包含一个随机单词,该单词会在重启后更改,例如poj
此处的单词
http://localhost:5601/poj/app/myplugin#/?_g=()
如何在自定义插件服务器端代码中获得成功?
在我的Kibana插件中,我使用server.inject()
async function logData(attributes) {
const resp = await server.inject({
method: 'PUT',
url: '/api/myplugin/alarm',
headers: {
'kbn-xsrf': 'reporting',
},
payload: {
attributes,
},
});
... do stuff
}
从服务器代码中查询插件API路由
server.route({
method: ['PUT'],
path: '/api/myplugin/alarm/{id?}',
config: {
validate: {
params: {
id: Joi.string(),
},
payload: {
attributes: Joi.object().required(),
},
},
},
handler: async function (req, reply) {
... do stuff
当我在正常模式下运行Kibana时,它可以工作。但是,当我在开发模式cd kibana && npm start
中运行它时,我得到的原始响应是标题中的404 Not Found
:
{ raw:
{ res:
Response {
domain: [Object],
...
socket: [Object],
connection: [Object],
_header: 'HTTP/1.1 404 Not Found\r\nkbn-name: kibana\r\nkbn-version: 6.2.4\r\ncontent-type: application/json; charset=utf-8\r\ncache-control: no-cache\r\ncontent-length: 38\r\nDate: Mon, 17 Sep 2018 16:32:02 GMT\r\nConnection: keep-alive\r\n\r\n',
我了解这是因为我在server.inject()
网址中没有随机词。
问题中的示例有效!问题是在我的真实代码中,我在路线中使用了错误的路径。