电影不是构造函数 - Mongoose

Isa*_* G. 5 mongoose mongodb node.js express mongoose-schema

我正在使用 MEAN 堆栈并尝试使用 Mongoose 将数据保存到我的 MongoDB 数据库中。但是,我的模型不断收到错误“电影不是构造函数”。但这就是猫鼬文档的显示方式,所以我不确定我做错了什么..

请帮忙!

电影.js

let mongoose = require('mongoose');

let MovieSchema = new mongoose.Schema({
    title: String,
    genre: String
});

export let Movie = mongoose.model("Movie", MovieSchema);
Run Code Online (Sandbox Code Playgroud)

路由.js

import express = require('express');
import mongoose = require('mongoose');
let Movie = require('../models/Movie');
let router = express.Router();

router.post('/movies', function(req, res, next) {
  let new_movie = new Movie(req.body);
  new_movie.save(function(err, movie) {
    if(err) return next(err);
    res.send(movie);
  });
});
Run Code Online (Sandbox Code Playgroud)

小智 5

当您忘记从模型文件导出模型或以错误的方式导出时,就会出现此问题。你的模型应该像这样导出:

let Movie = mongoose.model("Movie", MovieSchema);
module.exports=Movie;
Run Code Online (Sandbox Code Playgroud)

或者用简写形式,您可以简单地写:

module.exports=mongoose.model('Movie',MovieSchema);
Run Code Online (Sandbox Code Playgroud)


小智 -2

在 require 路径中使用整个文件名。所以Movie.js 而不是Movie。因为你指向一个文件,而不是一个node_module。

let Movie = require('../models/Movie.js')
Run Code Online (Sandbox Code Playgroud)