首页 > 解决方案 > 在 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'));

标签: javascriptnode.jsexpress

解决方案


routes.js导出函数作为其默认导出。index.js在一个表达式中导入并运行函数:

require("./startup/routes")(app);

这相当于:

const routesFunction = require("./startup/routes");
routesFunction(app);

重新你的版本没有 a routes.js,它和原始代码做的一样,唯一的区别是它都在一个模块中。


推荐阅读