javascript - 使用 import 语法而不是使用 require 时未定义 Mongoose
问题描述
所以我的模块是这样写的
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 方面没有太多经验,所以我可能会在这里遗漏一些东西。
我在带有 NestJS 的 Node.js 上运行这个,在打字稿文件上。
解决方案
我们可以在这里使用总共 2 个语法。
ES15 (NodeJS)
const mongoose = require('mongoose');
然后使用mongoose.connect
ES16(导入/导出)
import * as mongoose from `mongoose`;
然后使用mongoose.connect
或者
import {connect} from `mongoose`;
然后直接使用连接
推荐阅读
- python - 客户端、App Engine 和 Cloud SQL 之间的高延迟
- php - 如果文件不存在,则获取 CURLOPT_URL 以回显文本
- android - 一加 6 有 ARcore 支持吗
- python - 如何使用用户输入的值找到三角形的角度以及如何绘制它
- c# - IIS 在 .net webapi 响应中在哪里浪费时间?
- python - 元类中的属性()设置器问题
- java - 结果除以double,0?
- vue.js - Vue-router 重新加载页面并且我失去了我的状态,我该如何避免这种情况?
- javascript - 如何在 jQuery Ui 滑块中添加自定义增量和减量计数器
- docker - standard_init_linux.go:178: exec 用户进程导致“exec 格式错误”kubernetes