我正在使用 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
};
发送 post 请求后,我收到 TypeError: accDoc is not a function
此外,第二个文件中的 console.log(typeof accDoc);
返回函数。
编辑1
在 accdoc-services 中,如果我将 var AccDoc = require('../models/accdoc');
移动到 addAccDoc
函数,一切正常。
我在这里缺少一些node.js 的东西吗?我正在观看 Lynda 的教程视频,其中不存在这样的范围问题。 here is an image from Lynda tutorial
最佳答案
您缺少用于创建 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");
});
};
关于javascript - Mongoose :类型错误:[函数名称]不是函数。当尝试创建 Mongoose 实例时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33780726/