【问题标题】:Best Practice to Structure REST API Using Express with NodeJS使用 Express 和 NodeJS 构建 REST API 的最佳实践
【发布时间】:2014-10-31 22:59:20
【问题描述】:

这是一个独立的代理应用程序。我是 Express 和 Node 的新手,所以我想要一些关于如何构建这个应用程序结构的建议。

出发:

  • 我只有一个 app.js 文件,它是服务器并打开 Web 套接字。
  • 另一个 (router.js) 具有 Router() 和 REST 调用列表。

但是,此应用程序将进行大量 REST 调用,并且预计会有大量数据传入和请求传出。因此,仅在 router.js 中有一个 get、post 等调用的列表就会很快变得杂乱无章。有没有更好的方法来设计这个应用程序?

【问题讨论】:

    标签: javascript node.js rest express websocket


    【解决方案1】:

    为“包含”路由创建单独的文件。例如:

    // stored as ./routes/abc.js
    var middleware = require("../lib/middleware");
    module.exports = {
      setup: function(app) {
        app.get("/abc/def", middleware.fn1, middleware.fn2, ..., this.def);
        app.get("/abc/[...]", this.[...]);
      },
      def: function(req, res) {
      },
      ...
    }
    

    然后在你的 ./routes/index.js 中类似:

    var abc = require("abc");
    module.exports = function(app) {
      ...
      abc.setup(app);
      ...
    };
    

    最后当然是在你的 app.js 中,你会得到:

    var express = require("express"),
        app = express();
    require("routes")(app);
    var port = process.env.PORT || 12345;
    app.listen(port, function() {
      console.log('Listening on port %d', port);
    });
    

    【讨论】:

    • 我喜欢这项技术,但建议不要将方法命名为“bind”,因为维护人员可能会将其与原型“bind”方法混淆。
    猜你喜欢
    • 1970-01-01
    • 2019-11-19
    • 2013-10-23
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多