我希望在填写特定表单时调用两种不同的方法。我知道我不能有一个包含2个动作的表单所以我只是想知道我可以在Node.js中的同一路径上调用2个不同的方法吗?
我需要这样的东西
router.post('/webmark/addcollection', webmarks.addCollection);
router.post('/webmark/addcollection', webmarks.uploadPicture);
所以基本上当按下表单中的按钮时,操作将重定向到特定路径,并且将调用2个方法。
答案 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 {
// ...
}
内,它可以根据需要使用。