node.js - 电影不是构造函数 - Mongoose

标签 node.js mongodb express mongoose mongoose-schema

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

请帮忙!

Movie.js

let mongoose = require('mongoose');

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

export let Movie = mongoose.model("Movie", MovieSchema);

route.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);
  });
});

最佳答案

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

let Movie = mongoose.model("Movie", MovieSchema);
module.exports=Movie;

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

module.exports=mongoose.model('Movie',MovieSchema);

关于node.js - 电影不是构造函数 - Mongoose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38807593/

相关文章:

javascript - 在一个请求中一一发回响应?

mysql - Angular 4 与 Nodejs 和 Mysql 连接

javascript - Node JS 异步/等待 Controller 问题

javascript - node.js ~ express req.on ('end' ) 触发但不触发 req.on ('data' )

javascript - 在 Mongoose 中,找不到模块 '\node_modules\ipaddr.js\lib\ipaddr.js' 。请验证 package.json 是否具有有效的 "main"条目

node.js - 当我不回答请求时,如何防止 express 发送 "502 Bad Gateway"?

javascript - 在redis中存储node.js setTimeout的返回值

arrays - 重命名 MongoDB 数组中嵌入文档中的字段不起作用

javascript - 使用 updateMany() 和 MongoDB 时映射到正确的数组

mongodb - $lookup 其中 id 字段是不同类型的