Javascript nodejs post方法中的第二个参数是什么
在我的代码中,我有这样的代码Javascript nodejs post方法中的第二个参数是什么,javascript,node.js,express,Javascript,Node.js,Express,在我的代码中,我有这样的代码 router.post('/', publicShare, function(req, res, next) { 我签入但未找到第二个参数publicShare为什么在这里 publicShare看起来像 var publicShare = function(req, res, next) { if (condition1) { if (condition2) { res.status(400).send({suc
router.post('/', publicShare, function(req, res, next) {
我签入但未找到第二个参数publicShare为什么在这里
publicShare
看起来像
var publicShare = function(req, res, next) {
if (condition1) {
if (condition2) {
res.status(400).send({success:false});
} else {
next();
}
} else {
if (condition3) {
res.status(401).send({success:false});
} else
next();
}
};
请帮助我理解 根据,您可以添加多个由逗号分隔的中间件函数。“publicShare”变量必须是一个中间件函数。
publicShare
路由中的方法是一个快速中间件函数。根据文档
中间件功能是可以访问请求的功能
对象(req)、响应对象(res)和下一个中间件
应用程序请求-响应周期中的函数
中间件检查应用于请求和响应对象的特定条件或条件,如果条件满足,则执行下一个操作,即
1-结束请求-响应周期
2-调用堆栈中的下一个中间件函数
您可以参考文档以了解更多信息-您可以检查哪一个接受回调数组,它的行为就像一个中间件。文档中的示例:
app.get('/example/d', [cb0, cb1], function (req, res, next) {
因此,在您的例子中,publicShare
可以是回调数组,也可以只是一个回调,它的签名只是一个回调,接受req
、res
和next
作为参数。因此,您还可以使用以下命令:
app.get('/', function(req, res, next){}, function(req, res, next){}, ...
为了方便起见,您可以使用回调数组:
app.get('/',[cb1, cb2, cb3])
其中cb1、cb2和cb3是带有请求、响应和next参数的回调。它允许您一个接一个地运行。cb1->执行日志1,然后cb2->执行日志2,cb3->执行日志3,依此类推
我会用一个例子来简化这一点:
你会要水的
1) 买一罐水
2) cb2:在桶或罐中加入少量水滴
3) cb3:煮一下
那么,轮到你了。喝吧 这是,per。它的快速中间件功能非常感谢@jonrsharpe和Shubh我是节点JS的新手现在我阅读了我搜索的文本是
一系列中间件功能(用逗号分隔)。
@ShubhDixit:请帮我忽略第二个中间件我在做什么?正在编写next()不起作用了?请帮我忽略第二个中间件我在做什么?你可以删除它:'router.post('/',function(req,res,next){//yourcode}请帮我忽略第二个中间件我在做什么?只写next()
在publicShare的第一行
不起作用了?@ctrlf5您可以删除它,或者直接调用其中的next(),删除像var publicShare=function(req,res,next){next();};