module.find()不是函数
我有一个预先存在的集合(在mongodb地图集上),我已经连接它并调用模块和模式,我可以控制日志它,到目前为止很好,但当我将模块导出到index.js我无法控制台记录它说的数据Model.find不是一个功能。
PS。我是新手
我的代码:
var mongoose = require('mongoose');
var uri = 'mongodb+srv://USER:[email protected]/test?
retryWrites=true'
mongoose.connect(uri, {dbName: 'dbName'});
mongoose.Promise = global.Promise;
var connection = mongoose.connection;
connection.on('error', console.error.bind(console, 'connection error:'));
connection.once('open', function () {
var menuSchema = new mongoose.Schema({
_id: mongoose.Schema.ObjectId,
category: String,
food_name: String,
food_desc: String,
food_price: String
});
var Menu = mongoose.model('Menu', menuSchema, 'menu');
Menu.find(function(err, menus){
if(err) return console.err(err);
console.log(menus);
})
module.exports = Menu;
});
此控制台正确记录我的数据
index.js
var express = require('express');
var router = express.Router();
var Menu = require('../models/menu')
var assert = require('assert')
/* GET home page. */
router.get('/', function(req, res, next) {
Menu.find({}, function (err,menus) {
assert.equal(err,null);
res.send(menus);
});
});
module.exports = router;
这是我正在尝试将数据发送到HTML的地方
回答如下:您似乎在connection.on()
函数中定义和导出模型。尝试在单独的文件中定义它们,看看是否有帮助。