mongoose:TypeError:[函数名称]不是函数.当试图创建猫鼬instanse时

mongoose: TypeError: [function name] is not a function. when trying to create mongoose instanse

本文关键字:函数 创建 instanse TypeError mongoose      更新时间:2023-09-26

我正在用MEAN堆栈编写一个web应用程序,但我对mongoose实例感到头疼。

以下是我的代码:

我的路线

var express = require('express');
var router = express.Router();
var accDocService = require('../services/accdoc-services');
router.post('/dailybook', function(req, res) {
   accDocService.addAccDoc(req.body, function(error) {
      if (error) throw error;
   });
});

accdoc service.js

var accDoc = require('../models/accdoc').accDoc;
console.log(typeof accDoc);
exports.addAccDoc = function(accDoc, next) {
   var newAccDoc = new accDoc({
      number: '45645'
   });
   newAccDoc.save(function(error) {
      if (error) throw error;
      console.log("doc created");
   });
};

accdoc.js(模型文件)

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var accDocSchema = new Schema({
   number: String
});
var accDoc = mongoose.model('accDoc', accDocSchema);
module.exports = {
   accDoc: accDoc
};

发送邮件请求后,我得到了TypeError: accDoc is not a function

另外,第二个文件中的console.log(typeof accDoc);返回函数

编辑1

accdoc服务中,如果将var AccDoc = require('../models/accdoc');移到addAccDoc函数,则一切正常。

我是不是遗漏了一些node.js的东西?我在看Lynda的教程视频,没有像这样的范围问题。这是来自Lynda教程的图片

您缺少创建accDoc 模型实例的新关键字

var accDoc = require('../models/accdoc').accDoc;
console.log(typeof accDoc);
exports.addAccDoc = function(accDoc, next) {
   var newAccDoc = new accDoc({ // HERE new was missing!
      number: '45645'
   });
   newAccDoc.save(function(error) {
      if (error) throw error;
      console.log("doc created");
   });
};