Node.js 在使用import而不是require()时使用uuid的MongooseError
我得到以下错误:Node.js 在使用import而不是require()时使用uuid的MongooseError,node.js,typescript,mongoose,uuid,nestjs,Node.js,Typescript,Mongoose,Uuid,Nestjs,我得到以下错误: MongooseError: document must have an _id before saving 当我尝试使用API使用uuid创建对象(Campagne)时,请使用: import uuidv4 from 'uuid/v4'; 当我使用: const uuidv4 = require('uuid/v4'); 我的Campagne对象是使用其uuid正确创建的 以下是我的对象模式的完整代码: import * as mongoose from 'mongoos
MongooseError: document must have an _id before saving
当我尝试使用API使用uuid
创建对象(Campagne)时,请使用:
import uuidv4 from 'uuid/v4';
当我使用:
const uuidv4 = require('uuid/v4');
我的Campagne对象是使用其uuid
正确创建的
以下是我的对象模式的完整代码:
import * as mongoose from 'mongoose';
import uuidv4 from 'uuid/v4';
export const CampagneSchema = new mongoose.Schema({
_id: { type: String, default: uuidv4 },
dateDebut: Date,
dateFin: Date,
reduction: Number,
});
TSLint告诉我使用import
而不是require()
,并在IDE中将其作为错误加下划线,但它肯定不能像上面所示那样工作
有人能解释一下为什么会这样吗
作为参考,我将NestJS node.js框架与Typescript一起使用
澄清:
我想知道为什么
import
适用于mongoose
而不适用于uuid
(require
适用于uuid
)删除\u id:{type:String,default:uuidv4},
Mongoose将自动生成\u id
并使用const ddd=require(…)
我相信ES6模块在节点项目中不能正常工作我在Github
节点uuid
上找到了一个问题的答案。
以下代码正在运行:
import {v4 as uuid} from 'uuid';
从“uuid/v4”导入uuid代码>语法不起作用,至少在节点v10.9.0
上运行的Typescript v3
项目中不起作用(没有webpack或babel,只有ts节点才能编译/运行Typescript)
我得到以下错误:TypeError:v4\u 1.uuid不是一个函数
另一方面,import{v4 asuuid}来自'uuid'代码>按预期工作
(在uuid v3.3.2上测试)
谢谢你的回答。但我想使用uuid而不是Mongoose idimport
适用于我项目中除此之外的其他情况(例如Mongoose),为什么我需要使用require()
来处理这个特定情况?@Xavierr我认为这取决于库的模块结构。图书馆推荐我所看到的。我仍然不明白为什么它不能这样工作,但他们说在CommonJS中这样做,所以我想我会遵循这个。如果有人能回答为什么我不能使用import
,我会继续提问。