2016-11-11 3 views
-2

자바 스크립트 함수와 인수를 찾았지만 아래 함수를 이해하는 데 도움이되는 것을 찾을 수 없습니다. original tutorial을 참조 할 수 있습니다.세 가지 JavaScript 함수 인수는 어떻게 사용됩니까?

createPuppy에는 req, res 및 next의 세 가지 인수가 있습니다.

function createPuppy(req, res, next) { 
    req.body.age = parseInt(req.body.age); 
    db.none('insert into pups(name, breed, age, sex)' + 
     'values(${name}, ${breed}, ${age}, ${sex})', 
    req.body) 
    .then(function() { 
     res.status(200) 
     .json({ 
      status: 'success', 
      message: 'Inserted one puppy' 
     }); 
    }) 
    .catch(function (err) { 
     return next(err); 
    }); 
} 

그 기능이 라우터에 의해 호출되고 :

db.createPuppy가 호출
var express = require('express'); 
var router = express.Router(); 

var db = require('../queries'); 

router.get('/api/puppies', db.getAllPuppies); 
router.get('/api/puppies/:id', db.getSinglePuppy); 
router.post('/api/puppies', db.createPuppy); 
router.put('/api/puppies/:id', db.updatePuppy); 
router.delete('/api/puppies/:id', db.removePuppy); 
module.exports = router; 

통과 인자가 아니었다.

어떻게 세 가지 인수가이 함수에 들어 맞습니까?

업데이트 : 저는 Node, JavaScript, pg-promise 및 express를 처음 사용합니다. 그래서 어느 곳을 파 내려야하는지 압도적으로 압도적이었습니다. 나는 여기에 초점을 좁힐 수있는 곳에 리드를 가져 왔어. 고마워!

+1

여기에서 익스프레스에 대해 읽어보십시오. http://expressjs.com/en/guide/routing.html – jmargolisvt

+0

함수가 * 호출되면, 여러 개의 인수가 전달 될 수 있습니다. 위에서 뭘하는지는 다른 함수에 인수로 함수를 넘겨주는 것입니다. 나중에 다른 함수에 인수를 지정하여 호출합니다. –

+0

의견을 보내 주셔서 감사합니다. 귀하의 의견은 [JavaScript 콜백 기능] (http://javascriptissexy.com/understand-javascript-callback-functions-and-use-them/)을 먼저 이해하도록 유도했습니다. 나는 분명히 이해하지 못했다. 내가 지적한 특급 라우팅 페이지를 훑어 보았습니다. 콜백을 이해하지 않으면 익스프레스 소스가 선명도를 높이는 데 도움이되지 못했습니다. 이제는 좀 더 명확합니다. –

답변

-1

나는 (req, res, next)이 Express의 기본 인수라고 생각합니다.

router.post('/api/puppies', db.createPuppy);을 쓸 때 createPuppy 함수는 실제로 호출되지 않습니다. 이 메소드/끝점에 도달했을 때 호출 할 함수를 설정합니다.

Express는 POST로 /api/puppies 엔드 포인트에 도달했을 때 Express가 함수를 호출하고 이에 대한 필수 인수를 전달합니다.

희망 하시겠습니까?

+1

당신은 req, res, express의 기본 인수가 맞았습니다. Eric Kambestad는 API를 표현할 수있는 링크를 제공했습니다. 올바른 영역으로 학습 범위를 좁히는 데 도움을 주셔서 감사합니다. –

-1

해당 데이터를 POST 요청을 통해 해당 끝점으로 보냅니다. 그런 다음 req.body 변수를 통해 전달한 데이터에 액세스 할 수 있습니다.

요청 본문에 액세스하려면 bodyParser 미들웨어가 필요합니다. 여기에 대한 더 .. http://expressjs.com/en/api.html#req.body

+0

익스프레스 API에 대한 포인터는 그 (req, res 및 next) 함수/오브젝트가 상세하게 표시되었음을 보여주기 위해 매우 유용했습니다. 전체 페이지를 검토하는 중입니다. 일단 내가 이것을 얻으면 나는 bodyParser도 들여다 볼 것이다. 고맙습니다. –