Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在使用import而不是require()时使用uuid的MongooseError_Node.js_Typescript_Mongoose_Uuid_Nestjs - Fatal编程技术网

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 id
import
适用于我项目中除此之外的其他情况(例如Mongoose),为什么我需要使用
require()
来处理这个特定情况?@Xavierr我认为这取决于库的模块结构。图书馆推荐我所看到的。我仍然不明白为什么它不能这样工作,但他们说在CommonJS中这样做,所以我想我会遵循这个。如果有人能回答为什么我不能使用
import
,我会继续提问。