如何使用MongoDB的ES6风格的进口导入?
希望这是一个简单的问题。我试图用ES6导入MongoDB的进口从风格。如果我导入使用节点需要它工作正常。
let mongo = require('mongodb');
let MongoClient = mongo.MongoClient;
但是,如果我将其导入ES6方式它打破没有错误或日志。
import {MongoClient} from 'mongodb';
但是编译/运行它只是休息,当我尝试做任何事情MongoClient时,它不会破坏。
这里是我的数据库管理讲座
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
但是,如果我做MongoClient的的console.log根本就没有输出。
import {MongoClient} from 'mongodb';
export class DbManager {
constructor() {
console.log('Constructing DB Connection');
console.log(MongoClient);
}
}
和输出看起来像这个 -
mycomputer myuser$ ./start.sh
mycomputer myuser$
有没有编译错误,所以我不明白为什么这是行不通的。此外,我不明白为什么没有任何日志!这是出现这种情况,应该至少是日志,直到这一点我想最后的事情之一。如果你想在这里看到我的start.sh
脚本是(快速和肮脏的,不审判我):
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
。还没想好该怎么做。
编辑编辑
找到了解决办法。一:我并不感到有,但也许这只是它必须方式。
我不认为我可以靠进口ES6。它看起来像我可以用它来导入类型定义,但不是实际的模块。我怎么解决这个得到的是像这个 -
import {Db as MongoDb, MongoClient} from 'mongodb';
let mongodb = require('mongodb');
let mongoClient: MongoClient = mongodb.MongoClient;
很多额外的工作。如果有另一种方式请让我知道。
回答如下:import { MongoClient } from 'mongodb';
只是进口类型定义从node_modules/@types/mongodb/index.d.ts
import * as mongodb from 'mongodb';
从node_modules / MongoDB的/ index.js及其同进口一切
let mongodb = require('mongodb');