찾다

 >  Q&A  >  본문

javascript - nodejs를 사용하여 데이터베이스 데이터를 프런트 데스크로 전송합니다. 데이터베이스에 데이터가 있고 연결에 성공했지만 빈 배열을 얻는 이유는 무엇입니까?

1.api.js

2.db.js


3.vue

4. 데이터베이스

결과는 다음과 같습니다.

얻은 결과는 빈 배열이지만 링크와 데이터베이스가 모두 올바른 이유는 무엇입니까? ? ?

ringa_leeringa_lee2824일 전1222

모든 응답(4)나는 대답할 것이다

  • 滿天的星座

    滿天的星座2017-06-05 11:10:50

    @cheesekun이 말했듯이 이 문제의 핵심은 몽구스가 모델의 컬렉션 이름(첫 번째 매개변수)을 자동으로 복수형으로 변경한다는 것입니다.

    여기서 나는 나만의 실험 과정을 제공하고 아래 두 가지 솔루션 을 제공합니다.

    먼저 주제의 의미를 바탕으로 간단한 프로젝트를 만들어봤습니다

    app.js 으아아아

    module/db.js 으아아아

    router/api.js 으아아아

    시각화 도구를 통해 mongodb에 연결하고 테스트 데이터베이스 목록 모음에 미리 문서를 삽입하세요


    문제 발견

    브라우저를 통해 직접 액세스하여 제목과 동일한 빈 배열을 얻었습니다

    이유 찾기

    컬렉션에 문서를 삽입해 보세요

    하단의 코드

    를 통해 데이터module/db.js를 삽입하세요. 으아아아 재실행하여 브라우저를 통해 접속하면 코드를 통해 삽입된 데이터가 반환됩니다


    이때 시각화 도구를 통해 추가 세트가 있고 그 안에 코드를 통해 삽입한 데이터가 있다는 것을 확인할 수 있습니다

    lists

    솔루션

    컬렉션 이름을 명시적으로 지정하지 않으면 몽구스는 자동으로 model()의 첫 번째 매개변수를 컬렉션 이름과 같은 복수형으로 변경합니다

    두 가지 솔루션을 제공하세요. 둘 다 컬렉션 이름을 지정하세요

    첫 번째 유형:

    세 번째 매개변수를 mongoose.model()에 전달하여 컬렉션 이름을 지정하세요

    으아아아 두 번째 유형:

    두 번째 구성 항목을 스키마에 전달하여 컬렉션 이름을 지정하세요

    으아아아

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-05 11:10:50

    50센트를 걸었습니다.
    mongoose모델 정의시 테이블명에 s가 자동으로 추가되는데, 로그인과 리스트는 추가되지 않습니다. s
    데이터베이스를 호출할 수 없습니다
    전에 쓴 블로그이고 하단에 언급되어 있습니다
    mongoose deep 바다 구덩이

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-06-05 11:10:50

    res.send(data)에 console.log(data)를 추가하고 결과가 있는지 확인하세요

    회신하다
    0
  • 某草草

    某草草2017-06-05 11:10:50

    먼저 콘솔에서 xhr 반환 값에 값이 있는지 직접 확인해보세요. 값이 있으면 잘못 얻은 것입니다.

    그렇지 않다면 전혀 값을 보내지 않았다는 의미이므로 백엔드에서 문제가 발생한 것이므로 돌아가서 확인하시면 됩니다.

    회신하다
    0
  • 취소회신하다