我查找了JavaScript函数和参数,但找不到任何东西来帮助我理解下面的函数。您可以参考original tutorial。
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的新手。所以缩小挖掘地点有点压倒性。我来到这里是为了获得领先优势的地方。谢谢!
答案 0 :(得分:-1)
我相信(req, res, next)
是Express中的默认参数。
当您编写router.post('/api/puppies', db.createPuppy);
时,实际上尚未调用函数createPuppy
。这只是建立了当该方法/端点被命中时要调用的函数。
当您使用POST命中/api/puppies
端点时,
Express将负责调用该函数并将所需的参数传递给它。
希望有所帮助!
答案 1 :(得分:-1)
您将通过POST请求将该数据发送到该端点。然后,您可以通过req.body
变量访问您传入的数据。
您还需要bodyParser中间件来访问请求正文。更多相关内容.. http://expressjs.com/en/api.html#req.body