【发布时间】:2014-06-17 23:15:10
【问题描述】:
对于这个控制器,我只是想返回一个集合的所有结果。道具集合中有一项,但由于某种原因,我不断收到未定义的错误。
TypeError: 无法调用未定义的“查找”方法
这是我的 server.js 文件:
'use strict';
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
passport = require('passport'),
logger = require('mean-logger');
/**
* Main application entry file.
* Please note that the order of loading is important.
*/
// Initializing system variables
var config = require('./server/config/config');
var db = mongoose.connect(config.db);
// Bootstrap Models, Dependencies, Routes and the app as an express app
var app = require('./server/config/system/bootstrap')(passport, db);
// Return all results.
app.get('/all', function(req, res) {
var d = db.prop.find();
res.json(d);
});
// Start the app by listening on <port>, optional hostname
app.listen(config.port, config.hostname);
// Initializing logger
logger.init(app, passport, mongoose);
// Expose app
exports = module.exports = app;
【问题讨论】:
-
如果您使用的是护照/mongo-您是否有任何用于猫鼬的虚拟模式...通常您会执行
User.find({})之类的操作来获取所有值-实际上...也许您正在做的是好的 - 但你可能需要db.prop.find({}); -
在括号内添加方括号。
-
用猫鼬空括号表示“全部”而不是“无”——有点违反直觉
-
虽然您不需要空括号,但@ewizard 是正确的,您需要在正确的 Mongoose 模型上调用
find;所以像Prop.find(). -
谢谢大家,问题是集合由于某种原因未定义。 db 已定义,但 db.prop 未定义。但是在 mongo shell 的终端中,我可以查看表格并查看数据。
标签: javascript node.js angularjs mongodb mean-stack