-2

JavaScript の関数と引数を調べましたが、以下のような関数を理解するのに役立つものは見つかりませんでした。元のチュートリアルを参照できます。

createPuppy には、req、res、next の 3 つの引数があります。

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);
    });
}

その関数はルーターによって呼び出されています:

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;

db.createPuppy が呼び出されたとき、渡された引数はありませんでした。

これら 3 つの引数は、この関数にどのように適合しますか?

更新: Node、JavaScript、pg-promise、express は初めてです。なので、掘る場所を絞り込むのはちょっと大変でした。私はここに来て、自分の焦点をどこに絞るべきかについて手がかりを得ました。ありがとう!

4

2 に答える 2

-1

そのエンドポイントへの POST 要求を介してそのデータを送信します。req.bodyその後、変数を介して渡すデータにアクセスできます。

リクエスト本文にアクセスするには、bodyParser ミドルウェアも必要です。詳細はこちら.. http://expressjs.com/en/api.html#req.body

于 2016-11-11T21:53:25.620 に答える
-1

(req, res, next)Expressのデフォルトの引数だと思います。

を書いたrouter.post('/api/puppies', db.createPuppy);時点では、関数createPuppyは実際にはまだ呼び出されていません。これは、そのメソッド/エンドポイントがヒットしたときに呼び出す関数を確立するだけです。

/api/puppiesExpress は、POST でエンドポイントにヒットしたときに、関数を呼び出して必要な引数を渡す処理を行います。

それが役立つことを願っています!

于 2016-11-11T21:41:21.973 に答える