javascript - 在 Nodejs 中同时使用 Currying 和 Module.export
问题描述
/startup/routes.js
const express = require("express");
const users = require("../routes/users");
module.exports = function(app) {
app.use(express.json());
app.use("/api/users", users);
};
index.js
const express = require("express");
const app = express();
require("./startup/routes")(app);
我对上面的代码感到困惑,尤其是“index.js”中的柯里化。有人可以解释一下它是如何工作的吗?一般来说,我正在做与下面相同的工作。它们之间有什么区别?
index.js
const express = require('express');
const app = express();
app.use(express.json());
app.use('/api/users', require('./routes/api/users'));
解决方案
routes.js
导出函数作为其默认导出。index.js
在一个表达式中导入并运行函数:
require("./startup/routes")(app);
这相当于:
const routesFunction = require("./startup/routes");
routesFunction(app);
重新你的版本没有 a routes.js
,它和原始代码做的一样,唯一的区别是它都在一个模块中。
推荐阅读
- ios - 滚动后的 Swift UICollectionView Cell 收藏按钮更改为不收藏
- cmake - 在 cmake 中使用 REQUIRED_FILES 进行单元测试
- python - Python AuthenticationError:gdax 无效的 API 密钥
- twitter-bootstrap - 如何在 CSS 3 中的特定位置创建曲线?
- ios - Xcode 10 beta 使用大量存储空间
- python - 如何从 Python 中的字符串中过滤掉数据
- python - 无法通过 Python (Mysql.Connector) 创建临时表
- editor - 如何在 GNAT GPS 中为 Ada 过程/函数调用着色
- angular - Akka.net 和 Angular
- mongodb - MongoDB _id 索引不能线性扩展