이 콜백 호출은 mongo .find 호출을 사용하여 Node.js에서 어떻게 작동합니까?

CodeCrack

models / category.js

var mongoose = require('mongoose');

// Category Schema
var categorySchema = mongoose.Schema({
  title: {
    type: String
  },
  description: {
    type: String
  },
  created_at: {
    type: Date,
    default: Date.now
  }
});

var Category = module.exports = mongoose.model('Category', categorySchema);

// Get Categories
module.exports.getCategories = function(callback, limit) {
  Category.find(callback).limit(limit).sort([['title', 'ascending']]);
}

route / categories.js

var express = require('express');
var router = express.Router();

Category = require('../models/category.js');

router.get('/', function(req, res, next) {
  Category.getCategories(function(err, categories) {
    if (err) res.send(err);
    res.render('categories', 
      { 
        title: 'Categories',
        categories: categories
      });
  });
});

router.post('/add', function(req,res) {
  res.send('Form Submitted');
});

module.exports = router;

이 코드에 대해 몇 가지 질문이 있습니다.

a) 콜백 함수를 Category.find (callback)의 models / category.js에 전달할 때 route / categories.js에서 콜백 메커니즘이 어떻게 작동합니까? 우리가 Category.find ()의 일부가되는 전체 res.render를 수행하고 있기 때문에 그것은 나에게 이상해 보입니다.

b) 제한은 어디에 지정됩니까?

c) 왜 카테고리 앞에 var가 없는지 = require ( '../ models / category.js');

Mike 'Pomax'Kamermans

a) 실제로 일어나는 일이며 좋은 일 입니다. 데이터베이스 res.render에서 find()작업이 실행되고 결과가 다시 전송되어 몽구스 코드가 반환 될 때까지 호출되지 않습니다 . 쿼리 결과를 얻은 후에 콜백 함수를 실행하고 싶으 므로 res.render이전 호출 은 훨씬 더 기괴 할 것입니다.

b) 문서에서. http://mongoosejs.com/docs/api.html#model_Model.find이 될 수있는 쿼리 객체, 산출 동기 (쿼리가 실제로 데이터베이스에 해결하기 위해 만든 전에 예)를 추가로 지정 where, limit

c) 누군가가 게으 르기 때문에. 이 예에서는 실제로 때문에없이 변화를하지 않는 var(또는 const또는 let현대 JS에서) 변수 선언이 파일의 로컬 컨텍스트에 압정으로 고정되는 routes/categories.js모듈의 컨텍스트 및 때문에이 Categories그 범위의 상단에 선언, var변수가 바인딩되는 위치를 변경하지 않습니다. 그러나 게으른, 그리고 좋은 예 코드, 즉 한다var그것의 앞에.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Node.js-콜백을 사용하여 비동기 함수를 어떻게 호출합니까?

분류에서Dev

콜백을 사용하여 여러 비동기 Ajax 비동기 호출에서 오는 데이터를 어떻게 조작합니까?

분류에서Dev

Node + Express : 데이터베이스에 데이터를 게시 한 후 콜백을 호출하지 않습니다.

분류에서Dev

Node.js의 이벤트 루프가 자체적으로 콜백을 실행합니까 아니면 호출 스택이 콜백을 실행하기 위해 콜백을 호출 스택에 전달합니까?

분류에서Dev

모의 함수의 콜백에서 해결을 어떻게 호출합니까?

분류에서Dev

Node.js 콜백 : 모든 콜백이 반환되면 grand_callback을 호출합니다.

분류에서Dev

node.js에서 여러 비동기 redis 호출이있는 콜백의 적절한 배치

분류에서Dev

이것을 사용하여 콜백에서 다른 함수 호출

분류에서Dev

Node JS : promise reject () 콜백을 호출하지 않으면 프로그램 실행이 중지됩니다.

분류에서Dev

JavaScript / jQuery는 여러 Ajax 응답에서 콜백 함수를 어떻게 호출합니까?

분류에서Dev

XPage : 호출자에게 콜백을 사용하여 대화 상자를 작성하는 방법

분류에서Dev

비동기 함수를 동시에 호출하고 모든 콜백을 기다리려면 어떻게해야합니까?

분류에서Dev

콜백을 사용하여 node.js 함수에서 값을 반환하려면 어떻게해야합니까?

분류에서Dev

Node.js를 사용하여 외부 범위에서 콜백 함수를 어떻게 정의합니까?

분류에서Dev

jquery에서 이것을 사용하여 요소를 어떻게 호출 할 수 있습니까?

분류에서Dev

콜백이 이미 비동기를 사용하여 호출 되었습니까?

분류에서Dev

콜백 URL에 대한 응답에서 데이터를 추출하려면 어떻게해야합니까?

분류에서Dev

매개 변수를 사용한 함수 호출이 C에서 어떻게 작동합니까?

분류에서Dev

비동기식 콜백에서 호출자가 언제 콜백되는지 어떻게 알 수 있습니까?

분류에서Dev

Node.js에서 Mongoose를 통해 두 개의 콜백 호출을 통해 생성 된 문자열을 연결하는 방법은 무엇입니까?

분류에서Dev

Node.js에서 Mongoose를 통해 두 개의 콜백 호출을 통해 생성 된 문자열을 연결하는 방법은 무엇입니까?

분류에서Dev

panResponder가 이동을 시작할 때 부모 클래스에서 사용자 지정 함수를 호출하려면 어떻게해야합니까?

분류에서Dev

.NET에서 콜백에서 BeginSendTo를 호출하는 것이 적절합니까?

분류에서Dev

지시문에서 콜백 함수 호출이 작동하지 않습니다.

분류에서Dev

새로운 상태 값없이 함수에서 콜백으로 "setState"를 호출하면 상태가 어떻게 성공적으로 업데이트됩니까?

분류에서Dev

이 함수 호출에서 괄호를 사용하여 다르게 동작하도록하면 어떻게됩니까?

분류에서Dev

Jquery로 페이지의 모든 요소에 대한 모든 여백을 호출하는 변수를 어떻게 작성합니까?

분류에서Dev

Java에서 Nashorns`ScriptFunction` 콜백을 호출하는 방법은 무엇입니까?

분류에서Dev

비동기 호출이 콜백 패턴에서 작동하지 않는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    Node.js-콜백을 사용하여 비동기 함수를 어떻게 호출합니까?

  2. 2

    콜백을 사용하여 여러 비동기 Ajax 비동기 호출에서 오는 데이터를 어떻게 조작합니까?

  3. 3

    Node + Express : 데이터베이스에 데이터를 게시 한 후 콜백을 호출하지 않습니다.

  4. 4

    Node.js의 이벤트 루프가 자체적으로 콜백을 실행합니까 아니면 호출 스택이 콜백을 실행하기 위해 콜백을 호출 스택에 전달합니까?

  5. 5

    모의 함수의 콜백에서 해결을 어떻게 호출합니까?

  6. 6

    Node.js 콜백 : 모든 콜백이 반환되면 grand_callback을 호출합니다.

  7. 7

    node.js에서 여러 비동기 redis 호출이있는 콜백의 적절한 배치

  8. 8

    이것을 사용하여 콜백에서 다른 함수 호출

  9. 9

    Node JS : promise reject () 콜백을 호출하지 않으면 프로그램 실행이 중지됩니다.

  10. 10

    JavaScript / jQuery는 여러 Ajax 응답에서 콜백 함수를 어떻게 호출합니까?

  11. 11

    XPage : 호출자에게 콜백을 사용하여 대화 상자를 작성하는 방법

  12. 12

    비동기 함수를 동시에 호출하고 모든 콜백을 기다리려면 어떻게해야합니까?

  13. 13

    콜백을 사용하여 node.js 함수에서 값을 반환하려면 어떻게해야합니까?

  14. 14

    Node.js를 사용하여 외부 범위에서 콜백 함수를 어떻게 정의합니까?

  15. 15

    jquery에서 이것을 사용하여 요소를 어떻게 호출 할 수 있습니까?

  16. 16

    콜백이 이미 비동기를 사용하여 호출 되었습니까?

  17. 17

    콜백 URL에 대한 응답에서 데이터를 추출하려면 어떻게해야합니까?

  18. 18

    매개 변수를 사용한 함수 호출이 C에서 어떻게 작동합니까?

  19. 19

    비동기식 콜백에서 호출자가 언제 콜백되는지 어떻게 알 수 있습니까?

  20. 20

    Node.js에서 Mongoose를 통해 두 개의 콜백 호출을 통해 생성 된 문자열을 연결하는 방법은 무엇입니까?

  21. 21

    Node.js에서 Mongoose를 통해 두 개의 콜백 호출을 통해 생성 된 문자열을 연결하는 방법은 무엇입니까?

  22. 22

    panResponder가 이동을 시작할 때 부모 클래스에서 사용자 지정 함수를 호출하려면 어떻게해야합니까?

  23. 23

    .NET에서 콜백에서 BeginSendTo를 호출하는 것이 적절합니까?

  24. 24

    지시문에서 콜백 함수 호출이 작동하지 않습니다.

  25. 25

    새로운 상태 값없이 함수에서 콜백으로 "setState"를 호출하면 상태가 어떻게 성공적으로 업데이트됩니까?

  26. 26

    이 함수 호출에서 괄호를 사용하여 다르게 동작하도록하면 어떻게됩니까?

  27. 27

    Jquery로 페이지의 모든 요소에 대한 모든 여백을 호출하는 변수를 어떻게 작성합니까?

  28. 28

    Java에서 Nashorns`ScriptFunction` 콜백을 호출하는 방법은 무엇입니까?

  29. 29

    비동기 호출이 콜백 패턴에서 작동하지 않는 이유는 무엇입니까?

뜨겁다태그

보관