module.find () не является функцией - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть уже существующая коллекция (которая находится в атласе mongodb), и я подключил ее и создал модули и схемы, и пока могу хорошо записывать в журнал, но когда я экспортирую модуль в индекс.js Я не могу утешить данные, которые он говорит. Model.find не работает.

PS.я новичок в этом

Мой код:

var mongoose = require('mongoose');
var uri = 'mongodb+srv://USER:PASSWORD@wt-cluster-xd7ou.mongodb.net/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

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Создайте свою модель в отдельном файле.

var mongoose = require('mongoose');
let connection = require('connnection.js')

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;

Измените ваше соединение с БД на

var mongoose = require('mongoose');
var uri = 'mongodb+srv://USER:PASSWORD@wt-cluster-xd7ou.mongodb.net/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(){
  console.log('Database ready.')
})
module.exports = connection

Сохраните это как connection.js для require для работы.

Проверьте маршрут еще раз.

0 голосов
/ 15 февраля 2019

Похоже, вы определяете и экспортируете свою модель внутри функции connection.on().Попробуйте определить их в отдельном файле и посмотрите, поможет ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...