Надеюсь, это простой вопрос. Я пытаюсь импортировать MongoDB, используя стиль импорта es6. Если я импортирую с помощью node, он должен работать нормально.
let mongo = require('mongodb');
let MongoClient = mongo.MongoClient;
Но если я импортирую его в es6, он разбивается без ошибок или журналов.
import {MongoClient} from 'mongodb';
Но он не ломается, когда компиляция/запуск его только ломается, когда я пытаюсь что-то сделать с MongoClient.
Вот мой класс Db Manager -
import {MongoClient} from 'mongodb';
export class DbManager {
constructor() {
console.log('Constructing DB Connection');
}
}
Когда я запускаю свой сервер, я получаю несколько журналов от других менеджеров и событий.
mycomputer myuser$ ./start.sh
Server Constructing
Route Manager Constructing
Initializing Route: Static
Constructing DB Connection
http server started on port: 8000
Но если я делаю console.log MongoClient, просто нет вывода.
import {MongoClient} from 'mongodb';
export class DbManager {
constructor() {
console.log('Constructing DB Connection');
console.log(MongoClient);
}
}
И результат выглядит следующим образом:
mycomputer myuser$ ./start.sh
mycomputer myuser$
Нет ошибок компиляции, поэтому я не понимаю, почему это не работает. Кроме того, я не понимаю, почему нет журналов! Это одна из последних вещей, которые происходят, по крайней мере, должны быть журналы до тех пор, пока я не подумаю. Если вы хотите увидеть мой start.sh
script здесь, он (быстрый и грязный, не судите меня):
tsc
echo "var System = require('systemjs');" > dist/final.js
babel dist/typescript.js >> dist/final.js
echo "System.import('main');" >> dist/final.js
node dist/final.js
ИЗМЕНИТЬ
Продолжая поиск ответа, ожидая ответа (надеясь). Я смотрю на результат final.js
, и если MongoClient используется где угодно в файле, вызов функции System.register
выглядит следующим образом:
System.register("db/db.manager", ["mongodb"] ...
И если я его не использую (даже если я его импортирую), он не показывает mongodb
.
System.register("db/db.manager", [] ...
Это объясняет, почему ничего не произойдет. Что-то не так с попыткой импортировать mongodb
. Не уверен, что делать.
ИЗМЕНИТЬ EDIT
Найден решение. Один я не в восторге, но, возможно, это так, как должно быть.
Я не думаю, что могу полагаться на импорт es6. Похоже, я могу использовать его для импорта typedefs, но не для реального модуля. Как я обошел это так:
import {Db as MongoDb, MongoClient} from 'mongodb';
let mongodb = require('mongodb');
let mongoClient: MongoClient = mongodb.MongoClient;
Много дополнительной работы. Если есть другой способ, пожалуйста, дайте мне знать.