我可以在同一条路线上使用2种不同的功能吗? Node.js的

时间:2018-04-22 14:05:11

标签: node.js express

我希望在填写特定表单时调用两种不同的方法。我知道我不能有一个包含2个动作的表单所以我只是想知道我可以在Node.js中的同一路径上调用2个不同的方法吗?

我需要这样的东西

router.post('/webmark/addcollection', webmarks.addCollection);
router.post('/webmark/addcollection', webmarks.uploadPicture);

所以基本上当按下表单中的按钮时,操作将重定向到特定路径,并且将调用2个方法。

3 个答案:

答案 0 :(得分:2)

不,如果这样做,那么你将覆盖第一个。

更好的解决方法如下:

router.post('/webmark/addcollection', webmarks.addCollection, webmarks.uploadPicture);

并确保通过在uploadPicture中间件中添加addCollection成功操作,在next()处理程序中调用下一个中间件函数addCollection

exports.addCollection = function(req, res, next){
  // You logic goes here
  // On success operation call next middleware

  next();
}

exports.uploadPicture = function(req, res){
  // You logic for uploadPicture
}

答案 1 :(得分:0)

您的第一个函数收到3个输入(request, response, next),在此函数的末尾,调用next()

答案 2 :(得分:0)

您可以将E放在protocol NodeType { associatedtype NodeTypeParent associatedtype NodeTypeItem // ... } protocol ItemType:Equatable { associatedtype ItemTypePayload // ... } struct Item<ItemPayload:Equatable>: ItemType { // ... } struct Node<NodeParent:NodeType, NodeItem:ItemType>: NodeType { // ... } 内,它可以根据需要使用。