当弹性搜索与Vue.js集成时,我遇到了运行时错误,错误未捕获TypeError:无法在eval读取未定义的属性'prototype'(eval at(app.js:1173),:4990:31)。所有浏览器都会出现此问题
elastic_search.js
var es = require('elasticsearch')
var port = 9200
var protocol = 'http'
var hosturl = [ '127.0.0.1']
var hosts = hosturl.map (function(host) {
return{
protocol : protocol,
host : host,
port : port
}
})
var client = new es.Client({
hosts: hosts
})
export function search () {
alert('hell1')
return client.search({
index: 'logstash-2017.06.07',
type: 'logs',
body: {
query: {
match_all: {}
}
}
}).then(function (resp) {
return resp.hits.hits
}, function (err) {
console.trace(err.message)
})
}
main.js
import Vue from 'vue'
import App from './App'
import router from './router'
Vue.use(require('vue-resource'))
import {search} from './elastic_search.js'
Vue.config.productionTip = false
/* eslint-disable no-new */
var handler = new Vue({
el: '#app',
router,
template: '<App/>',
components: { App },
methods: {
search: function () {
search().then(function (res) {
alert(res)
})
}
}
})
handler.search()
答案 0 :(得分:0)
在这种情况下, 你必须在弹性搜索包本身之前安装弹性搜索的类型定义。
我是一名角色2开发人员,并且在角度2或4上有解决此问题的工作解决方案。
如果已经这样做,请卸载所有弹性搜索包...使用类似..
之类的命令npm uninstall elasticsearch npm uninstall -g elasticsearch npm uninstall -g --save-dev elasticsearch npm uninstall @types/elasticsearch
现在使用angular-cli在项目中安装弹性搜索包的类型定义
npm install @types/elasticsearch
现在安装弹性搜索包
npm install elasticsearch
希望你能与之相关。