-2

我查找了 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);
    });
}

路由器正在调用该函数:

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 时,没有传递任何参数。

这三个参数如何适合这个函数?

更新:我是 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/puppies当您使用 POST 访问端点时,Express 负责调用该函数并将所需的参数传递给它。

希望有帮助!

于 2016-11-11T21:41:21.973 回答