我收到以下错误:
MongooseError: document must have an _id before saving
当我尝试使用uuid
和我的API使用import uuidv4 from 'uuid/v4';
创建对象(香槟)时
const uuidv4 = require('uuid/v4');
当我使用时可以使用:
uuid
我的Campagne对象及其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,
});
正确创建。
这是我对象的架构的完整代码:
import
TSLint告诉我使用require()
而不是import
,并在我的IDE中将其强调为错误,但绝对不能如上所示。
有人可以解释一下为什么会这样吗?
有关信息,我将NestJS node.js框架与Typescript一起使用。
要澄清:
我想知道为什么mongoose
为uuid
工作,而不为require
工作(uuid
为Preferences > Package Settings > Package Control > Settings - User
工作)
答案 0 :(得分:1)
我在Github node-uuid
上发现了一个问题的答案。
以下代码正在工作:
import {v4 as uuid} from 'uuid';
https://github.com/kelektiv/node-uuid/issues/245
>
import uuid from 'uuid/v4';
语法不起作用,至少在Typescript v3
上运行的Node v10.9.0
项目中(没有webpack或babel,只有ts-node
才能编译/运行Typescript)我收到以下错误:
TypeError: v4_1.uuid is not a function
另一方面,
import {v4 as uuid} from 'uuid';
正常工作(在
uuid v3.3.2
上测试)
感谢您的回答。
答案 1 :(得分:0)
删除_id: { type: String, default: uuidv4 },
猫鼬会自动生成_id
并使用const ddd = require(...)
我相信ES6模块不能在Node项目中正常工作