所以我把我的模块写成这样

import mongoose from 'mongoose';

export class MyModule {
   constructor(){
       //do
   }

   create(str){
      mongoose.connect(str); //cannot find property 'connect' of undefined
   }

}

使用导入语法时,出现cannot find property 'connect' of undefined错误;使用require时,它可以按预期工作。

奇怪的是,通过导入语法导入单个属性可以按预期工作,
import { connect } from 'mongoose'

但是出于某些其他原因,我需要访问整个ORM。

为什么会这样呢?难道我做错了什么?公平地说,我在ES6模块系统,TypeScript和Node.js方面没有太多经验,所以我可能在这里缺少一些东西。

我正在使用 typescript 文件的NestJS在Node.js上运行此脚本。

最佳答案


ES15(NodeJS)

const mongoose = require('mongoose');
然后使用 mongoose.connect
ES16(导入/导出)
import * as mongoose from `mongoose`;
然后使用 mongoose.connect
要么
import {connect} from `mongoose`;
然后使用直接连接

关于javascript - 在使用导入语法时未定义 Mongoose ,在使用require时未定义 Mongoose ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57388095/

10-09 20:17
查看更多