在Node js应用程序中导入Mongoose模式无法正常工作

时间:2019-10-06 22:34:28

标签: node.js mongodb express mongoose

每当尝试在基本锻炼应用程序中导入时,我都会收到一条错误消息

Exercise-Tracker-MERN\backend\models\exercise.model.js:1
(function (exports, require, module, __filename, __dirname) { import Schema from "mongoose";
import Schema from "mongoose";
const mongoose = require("mongoose");

const exercise = new Schema(
  {
    username: { type: String, required: true },
    description: { type: String, required: true },
    duration: { type: Number, required: true },
    date: { type: Date, required: true }
  },
  {
    timestamps: true
  }
);

const Exercise = mongoose.model("Exercise", userSchema);
module.exports = Exercise;

我正在学习教程: https://www.youtube.com/watch?v=7CqJlxBYj-M

3 个答案:

答案 0 :(得分:1)

import { Schema } from "mongoose"; es6语法(并且您的节点版本可能尚未识别)尝试const { Schema } = require("mongoose");

  

如果语法不是问题,则可能是因为您没有从Mongoose模块中解构出架构,而不是使用默认导出

答案 1 :(得分:1)

我可以在您的代码中看到多个错误。如果您使用的是不支持es6的nodejs,则不能使用import语句,而可以使用require。另外,您正在使用未定义的userSchema创建Exercise模型。

请尝试这个

const mongoose = require("mongoose");

const exercise = new mongoose.Schema(
  {
    username: { type: String, required: true },
    description: { type: String, required: true },
    duration: { type: Number, required: true },
    date: { type: Date, required: true }
  },
  {
    timestamps: true
  }
);

const Exercise = mongoose.model("Exercise", exercise);
module.exports = Exercise;

答案 2 :(得分:1)

您需要先导入猫鼬

import mongoose from 'mongoose';

const { Schema } = mongoose;

模式来自导入的猫鼬