TypeError : Object {...}에 'find'메소드가 없습니다-Express와 함께 몽구스를 사용할 때

sdouble

Express와 함께 몽구스 스키마를 사용하여 MongoDB에서 데이터를 가져 오는 데 문제가 있습니다. 처음에는 단일 파일 (mongoosetest.js)에서 mongoose로 테스트했는데 제대로 작동합니다. 그러나 모든 것을 익스프레스 경로와 구성 파일로 나누기 시작하면 상황이 깨지기 시작합니다. 나는 그것이 단순한 것이라고 확신하지만 지난 3 시간 동안 인터넷 검색을하면서 내가 뭘 잘못하고 있는지 알아 내려고 노력했고 내 프로세스와 비교할만큼 충분히 일치하는 것을 찾을 수 없었다.

mongoosetest.js (이것은 잘 작동하지만 내 응용 프로그램에는 적합하지 않습니다)

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/meanstack');

var db = mongoose.connection;

var userSchema = mongoose.Schema({
  name: String
}, {collection: 'users'});

var User = mongoose.model('User', userSchema);

User.find(function(err, users) {
  console.log(users);
});

이 파일은 내가 문제가있는 곳입니다. 나는 그것이 어리석은 일이라고 확신합니다. 아마도 외부 파일, 내보내기 및 요구 사항을 사용한 직접적인 결과 일 것입니다. 내 server.js 파일이 시작되고 Express를 구성합니다. 라우팅 파일과 db 구성 파일도 있습니다.

라우팅 파일 (allRoutes.js)

var express = require('express');
var router = express.Router();
var db = require('../config/db');
var User = db.User();

// routes
router.get('/user/list', function(req, res) {
  User.find(function(err, users) {
    console.log(users);
  });
});

// catch-all route
router.get('*', function(req, res) {
  res.sendfile('./public/index.html');
});

module.exports = router;

dbconfig 파일 (db.js)

var mongoose = require('mongoose');
var dbHost = 'localhost';
var dbName = 'meanstack';
var db = mongoose.createConnection(dbHost, dbName);
var Schema = mongoose.Schema, ObjectId = Schema.ObjectId;

db.once('open', function callback() {
  console.log('connected');
});

// schemas
var User = new Schema({
  name    : String
}, {collection: 'users'});

// models
mongoose.model('User', User);
var User = mongoose.model('User');

//exports
module.exports.User = User;

localhost : 3000 / user / list로 이동할 때 다음 오류가 표시됩니다.

TypeError: Object { _id: 5398bed35473f98c494168a3 } has no method 'find' at 
Object.module.exports [as handle] (C:\...\routes\allRoutes.js:8:8) at next_layer 
(C:\...\node_modules\express\lib\router\route.js:103:13) at Route.dispatch 
(C:\...\node_modules\express\lib\router\route.js:107:5) at 
C:\...\node_modules\express\lib\router\index.js:213:24 at Function.proto.process_params 
(C:\...\node_modules\express\lib\router\index.js:284:12) at next 
(C:\...\node_modules\express\lib\router\index.js:207:19) at Function.proto.handle 
(C:\...\node_modules\express\lib\router\index.js:154:3) at Layer.router 
(C:\...\node_modules\express\lib\router\index.js:24:12) at trim_prefix 
(C:\...\node_modules\express\lib\router\index.js:255:15) at 
C:\...\node_modules\express\lib\router\index.js:216:9

내가 말했듯이, 내 단일 파일 (mongoosetest.js)이 예상대로 작동하기 때문에 내 코드를 구성하는 데 엉망이되는 것은 아마도 어리석은 일입니다. 감사.

sdouble

나는 그것을 알아.

분명히 db.once ( 'open'...은 mongoose.connect와 같지 않습니다. 내 dbconfig.js 파일을 다음으로 전환했으며 모두 잘 작동합니다 (var User = db.User 사용; allRoutes.js에서 Aaron로 Dufour가 제안했습니다).

var mongoose = require('mongoose');
var Schema = mongoose.Schema, ObjectId = Schema.ObjectId;

mongoose.connect('mongodb://localhost/meanstack');

// schemas
var User = new Schema({
  name    : String
}, {collection: 'users'});

// models
mongoose.model('User', User);

//exports
module.exports.User = mongoose.model('User');

편집 : 2 일 동안 답변으로 표시 할 수 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

" 'where'메소드가 null에서 호출되었습니다." firestore flutter와 함께 streambuilder를 사용할 때

분류에서Dev

Nhibernate와 함께 Linq에서 Count ()를 사용할 때 지정된 메서드가 지원되지 않습니다.

분류에서Dev

TypeError : Object # <Object>에 'apply'메소드가 없습니다. 오류 : 인수 'fn'이 함수가 아닙니다. karma / jasmine 테스트를 실행할 때 Object가 있습니다.

분류에서Dev

자바 스크립트와 함께 Firebase를 사용할 때 '초기화 전에'firebase '에 액세스 할 수 없습니다.'오류가 발생합니다.

분류에서Dev

다른 함수에서 호출 될 때 몽구스 쿼리의 결과를 사용할 수 없습니다.

분류에서Dev

Vanilla Tilt를 React와 함께 사용하려고 할 때 "TypeError : Object (...) is not a function"의 원인은 무엇입니까?

분류에서Dev

jqxGrid가 "Object [object Object]에 'jqGrid'메소드가 없습니다."오류와 함께 실패합니다.

분류에서Dev

추가 된 요소는 on 이벤트와 함께 각 메소드를 사용할 수 없습니다.

분류에서Dev

iOS에서 textcontainer와 함께 textstorage를 사용할 때 UITextView를 선택할 수 없습니다.

분류에서Dev

내 WPF UserControl이 빌드 된 프로젝트가 아닌 다른 프로젝트와 함께 사용할 때 리소스를 찾을 수 없습니다.

분류에서Dev

몽구스와 함께`Q`를 사용하여`save` 메소드를 어떻게 바인딩 할 수 있습니까?

분류에서Dev

react-native-router-flux와 함께 Context API를 사용하면 앱 구성 요소에서 setState ()를 사용할 때 스택이 재설정됩니다.

분류에서Dev

cmake와 함께 make -j를 사용할 때 "대상을 만드는 규칙이 없습니다"오류

분류에서Dev

PhantomJ와 함께 Leaflet MarkerCluster를 사용할 때 모든 jQuery 구성 요소가 정의되지 않습니다.

분류에서Dev

javascript 구성 요소에 transformrequest를 사용할 때 "available"이라는 메소드가 없습니다.

분류에서Dev

Flask-SocketIO가 RabbitMQ와 함께 사용할 때 프런트 엔드에서 메시지를받지 못함

분류에서Dev

SwiftUI와 함께 SceneKit을 사용할 때 SCNSceneRendererDelegate 메서드에 액세스하는 방법은 무엇입니까?

분류에서Dev

Google 스프레드 시트에서 ARRAYFORMULA와 함께 FILTER를 사용할 수 없습니다.

분류에서Dev

Uncaught TypeError : Object (...)는 Angular Google지도를 사용할 때 함수가 아닙니다.

분류에서Dev

TypeError : Object (...)는 react-toastify를 사용할 때 함수가 아닙니다.

분류에서Dev

Unity와 함께 Microsoft Azure Text To Speech를 사용할 때 재생 사운드의 시작과 끝에 끊어진 사운드가 있습니다.

분류에서Dev

Kubuntu와 함께 USB 드라이브를 사용하는 GRUB 메뉴에 "복구 모드"행이 없습니다.

분류에서Dev

Cypress 6.2.1에서 가로 채기와 함께 미니 매치를 사용할 수 없습니다.

분류에서Dev

Angular 9와 함께 사용할 때 MatToolbar에서 오류가 발생합니다.

분류에서Dev

노드에 대한 데이터와 함께 스타일을 지정할 때 "요소 생성시 '스타일'우회 설정은 사용되지 않습니다."

분류에서Dev

varImp 함수를 적용 할 때 대상 변수에 Caret 및 가중치와 함께 xgbTree 메서드를 사용할 때 트리가 아닌 모델 오류

분류에서Dev

AngularJS : TypeError : Object # <Object>에 'replace'메소드가 없습니다.

분류에서Dev

Rebus와 함께 Autofac을 사용할 때 사용할 수있는 MessageContext가 없습니다.

분류에서Dev

내 emacs를 purcell의 .emacs.d와 함께 사용할 때 슬라임을 사용할 수 없습니다.

Related 관련 기사

  1. 1

    " 'where'메소드가 null에서 호출되었습니다." firestore flutter와 함께 streambuilder를 사용할 때

  2. 2

    Nhibernate와 함께 Linq에서 Count ()를 사용할 때 지정된 메서드가 지원되지 않습니다.

  3. 3

    TypeError : Object # <Object>에 'apply'메소드가 없습니다. 오류 : 인수 'fn'이 함수가 아닙니다. karma / jasmine 테스트를 실행할 때 Object가 있습니다.

  4. 4

    자바 스크립트와 함께 Firebase를 사용할 때 '초기화 전에'firebase '에 액세스 할 수 없습니다.'오류가 발생합니다.

  5. 5

    다른 함수에서 호출 될 때 몽구스 쿼리의 결과를 사용할 수 없습니다.

  6. 6

    Vanilla Tilt를 React와 함께 사용하려고 할 때 "TypeError : Object (...) is not a function"의 원인은 무엇입니까?

  7. 7

    jqxGrid가 "Object [object Object]에 'jqGrid'메소드가 없습니다."오류와 함께 실패합니다.

  8. 8

    추가 된 요소는 on 이벤트와 함께 각 메소드를 사용할 수 없습니다.

  9. 9

    iOS에서 textcontainer와 함께 textstorage를 사용할 때 UITextView를 선택할 수 없습니다.

  10. 10

    내 WPF UserControl이 빌드 된 프로젝트가 아닌 다른 프로젝트와 함께 사용할 때 리소스를 찾을 수 없습니다.

  11. 11

    몽구스와 함께`Q`를 사용하여`save` 메소드를 어떻게 바인딩 할 수 있습니까?

  12. 12

    react-native-router-flux와 함께 Context API를 사용하면 앱 구성 요소에서 setState ()를 사용할 때 스택이 재설정됩니다.

  13. 13

    cmake와 함께 make -j를 사용할 때 "대상을 만드는 규칙이 없습니다"오류

  14. 14

    PhantomJ와 함께 Leaflet MarkerCluster를 사용할 때 모든 jQuery 구성 요소가 정의되지 않습니다.

  15. 15

    javascript 구성 요소에 transformrequest를 사용할 때 "available"이라는 메소드가 없습니다.

  16. 16

    Flask-SocketIO가 RabbitMQ와 함께 사용할 때 프런트 엔드에서 메시지를받지 못함

  17. 17

    SwiftUI와 함께 SceneKit을 사용할 때 SCNSceneRendererDelegate 메서드에 액세스하는 방법은 무엇입니까?

  18. 18

    Google 스프레드 시트에서 ARRAYFORMULA와 함께 FILTER를 사용할 수 없습니다.

  19. 19

    Uncaught TypeError : Object (...)는 Angular Google지도를 사용할 때 함수가 아닙니다.

  20. 20

    TypeError : Object (...)는 react-toastify를 사용할 때 함수가 아닙니다.

  21. 21

    Unity와 함께 Microsoft Azure Text To Speech를 사용할 때 재생 사운드의 시작과 끝에 끊어진 사운드가 있습니다.

  22. 22

    Kubuntu와 함께 USB 드라이브를 사용하는 GRUB 메뉴에 "복구 모드"행이 없습니다.

  23. 23

    Cypress 6.2.1에서 가로 채기와 함께 미니 매치를 사용할 수 없습니다.

  24. 24

    Angular 9와 함께 사용할 때 MatToolbar에서 오류가 발생합니다.

  25. 25

    노드에 대한 데이터와 함께 스타일을 지정할 때 "요소 생성시 '스타일'우회 설정은 사용되지 않습니다."

  26. 26

    varImp 함수를 적용 할 때 대상 변수에 Caret 및 가중치와 함께 xgbTree 메서드를 사용할 때 트리가 아닌 모델 오류

  27. 27

    AngularJS : TypeError : Object # <Object>에 'replace'메소드가 없습니다.

  28. 28

    Rebus와 함께 Autofac을 사용할 때 사용할 수있는 MessageContext가 없습니다.

  29. 29

    내 emacs를 purcell의 .emacs.d와 함께 사용할 때 슬라임을 사용할 수 없습니다.

뜨겁다태그

보관