mongoose:.save不是一个函数

我是非常新的,我已经浏览了档案,但是这个代码里面发生了什么事情,这让我无法回避。 我使用快速生成器来创build一个日历应用程序,现在我想把它连接到MongoDB。 到Mongo的实际连接正在工作,但我无法保存文档。

我的global.js (我正在运行我的前端Javascript)的相关部分如下所示:

$(document).ready(function() { var ev = new Event({ date: "a6_13_2016", time: 900, description:"Fencing"}); ev.save(function(err) { if (err) console.log(err); else console.log("Success!") }) 

这是我得到的“TypeError:ev.save不是一个函数”的消息。 我的模型/ Events.js看起来像这样:

 var mongoose = require('mongoose'); var eventSchema = new mongoose.Schema({ date: String, time: Number, description: String }); module.exports = mongoose.model('Event', eventSchema); 

我的路线/ events.js看起来像这样:

 var express = require('express'); var router = express.Router(); var mongoose = require('mongoose'); var Event = require('../models/Events.js'); /* GET /event listing. */ router.get('/', function(req, res, next) { Event.find(function (err, dates) { if (err) return next(err); res.json(dates); }); }); /*POST event*/ router.post('/', function(req, res, next) { Event.create(req.body, function (err, post) { if (err) return next(err); res.json(post); }); }); /* GET /event/id */ router.get('/:id', function(req, res, next) { Event.findById(req.params.id, function (err, post) { if (err) return next(err); res.json(post); }); }); module.exports = router; 

我想保存一些东西来testing它,但是它给了我“.save不是一个函数

 var events = require('./routes/events'); app.use('/events', events); 

和build立Mongoose连接我的app.js文件的代码是样板。 你认为是什么问题?

我懂了

 $(document).ready(function() { 

你想在浏览器中使用Mongoose吗?

它应该用在服务器端。

在浏览器中,您需要向服务器发送AJAX请求:

 $('#save').click(function() { $.post('/event', function(response) { console.log(reposne) }) }); 

在服务器上,你应该添加一个处理你的AJAX请求的路由,在这个路由中你可以保存你的模型:

 router.post('/event', function(req, res) { var ev = new Event({ date: "a6_13_2016", time: 900, description:"Fencing"}); ev.save(function(err) { if (err) console.log(err); else console.log("Success!") }) }); 

请注意,你不需要接下来的第三个参数。 它仅用于中间件

你确定这一行吗?

 var Event = require('../models/Events.js'); 

有正确的path吗?

你正在从Event函数创build一个ev对象,从错误描述来看,ev似乎是不确定的。

如果您的事件文件没有正确加载,您将无法访问.savefunction。