winston-elasticsearch: TypeError: Elasticsearch 不是构造函数

asm*_*sma 4 javascript logging express elasticsearch winston

我在快速服务器上使用 winston-elasticsearch,我只是编写了与文档中相同的代码

var winston = require('winston');
var Elasticsearch = require('winston-elasticsearch');

var esTransportOpts = {
  level: 'info'
};
var logger = winston.createLogger({
  transports: [
    new Elasticsearch(esTransportOpts)
  ]
});
Run Code Online (Sandbox Code Playgroud)

当我运行服务器时,出现此错误:

类型错误:Elasticsearch 不是构造函数

我已经安装了最新版本“winston”:“^3.2.1”和“winston-elasticsearch”:“^0.8.8”

joe*_*lin 5

@asma 的建议,降级到 0.7.x,确实为我修复了这个错误。然而,这让我陷入了一个过时的版本,在最新版本中修复了一个不同的错误。

@joe 提到的问题现已关闭。它解释了每个人都通过调整他们的语法习惯了突破性的变化。但是,自述文件仍然具有旧语法。

通过如下调整示例,我能够获得最新版本(0.8.8)的工作:

var winston = require('winston');
var winstonElasticSearch = require('winston-elasticsearch');

var esTransportOpts = {
  level: 'info'
};
var logger = winston.createLogger({
  transports: [
    new winstonElasticSearch.ElasticsearchTransport(esTransportOpts)
  ]
});
Run Code Online (Sandbox Code Playgroud)


Yac*_*ine 4

对于 Winston 3.x、Elasticsearch 6.0 及更高版本,请使用 0.7.0。对于 Elasticsearch 6.0 及更高版本,请使用 0.6.0。对于 Elasticsearch 5.0 及更高版本,请使用 0.5.9。对于早期版本,请使用 0.4.x 系列。