Javascript 高阶函数
我在创建高阶函数来修剪空白时遇到问题Javascript 高阶函数,javascript,node.js,sanitization,serverside-javascript,high-order-component,Javascript,Node.js,Sanitization,Serverside Javascript,High Order Component,我在创建高阶函数来修剪空白时遇到问题 const{trim}=require('validator')) 常量whiteSpace2=()=>(请求:任意)=>{ Object.key(请求主体).forEach((key)=>{ 如果(请求正文[键]=='string')请求正文[键]=修剪(请求正文[键]) }) } fastfy.post('/login',(请求:任意,回复:任意)=>{ 空格2() 控制台日志(请求正文) 返回资源代码(403).send('error') }) 函数
const{trim}=require('validator'))
常量whiteSpace2=()=>(请求:任意)=>{
Object.key(请求主体).forEach((key)=>{
如果(请求正文[键]=='string')请求正文[键]=修剪(请求正文[键])
})
}
fastfy.post('/login',(请求:任意,回复:任意)=>{
空格2()
控制台日志(请求正文)
返回资源代码(403).send('error')
})
函数永远不会执行
const trimmer=whiteSpace2();微调器(req);控制台日志(请求主体)
您应该将req
作为参数传递给whiteSpace2
函数。@hackape我知道我可以这样做,但我不想发送参数,使用express
我可以设置如下中间件:sanitize(){return function(req,res,next){}那么,为什么不将其设置为中间件呢?您已经将whiteSpace2
定义为一个函数,在调用时返回另一个需要在调用时传递的函数req
。因此,当您执行whiteSpace2()
时,所做的只是返回另一个函数-在调用另一个函数并将req
传递给它之前,不会进行任何实际处理。因此,您现在对whiteSpace2()
的调用没有任何作用。此外,似乎没有任何理由这样写。