【发布时间】:2020-05-05 15:01:42
【问题描述】:
假设我想向 ExpressJS 路由回调传递一个对象。
我知道我可以追加到app:
// router.js
const getFoo = (req, res) => res.json(req.app.foo);
// index.js
const app = express();
app.foo = {};
app.get('/foo', getFoo);
或者我可以使用更高阶的函数:
// router.js
const getFoo = foo => (req, res) => res.json(foo);
// index.js
const app = express();
const foo = {};
app.get('/foo', getFoo(foo));
两者都易于编写、扩展和测试。 但是,我不知道解决方案的含义以及是否更好。
有人知道这两种方法之间的真正区别吗?
【问题讨论】:
标签: node.js express functional-programming higher-order-functions