TypeError:Loki不是构造函数



我似乎不明白为什么不起作用

我的Hapi.js索引如下:

import { Server, Request, ResponseToolkit } from '@hapi/hapi';
import * as Loki from 'lokijs';

const db = new Loki(`${UPLOAD_PATH}/${DB_NAME}`, { persistenceMethod: 'fs' });

这是非常直接的,取自一个众所周知的例子

我的package.json中的脚本如下:

"scripts": {
"prestart": "tsc",
"start": "node dist/index.js",
...

编译成dist/index.js当我运行启动时,我得到以下错误:

TypeError: Loki is not a constructor

我尝试过各种各样的事情,但我想我没有抓住要点,如果有人能帮助我,我将不胜感激。Loki不是构造函数,我明白了,但我如何实例化一个新的Loki((,为什么同样的东西在其他地方也能工作?

谢谢你的帮助!

您可以执行以下操作之一:

import * as Loki from 'lokijs';
const db = new Loki.default(`${UPLOAD_PATH}/${DB_NAME}`, { persistenceMethod: 'fs' });
// For me, I don't like this way. It looks bad.

import Loki from 'lokijs';
const db = new Loki(`${UPLOAD_PATH}/${DB_NAME}`, { persistenceMethod: 'fs' });

在lokijs内部,该类似乎被导出为module.exports = factory(),相当于export default factory(),因此该类被导出为default。这里有一个有用的问题来理解我的意思:ES6:";将*作为别名导入";vs";导入别名";

最新更新