Node.js快速服务器端结构

问题描述:

我正在尝试为我的服务器和它的结构找到解决方案。我想要做的是分开的。Node.js快速服务器端结构

app.post("/login", function(request, response) { 
}); 

app.post("/register", function(request, response) { 
}); 

app.get("/", function(request, response) { 
}); 

成不同的文件。就我而言,他们都站在一个名为“server.js”的文件中。我怎样才能让他们更好地工作?并且同时运行所有这些工具。我搜查了这种情况,发现了这种情况的不同类型。但无法得到明确的答案。

+1

可能的重复[如何在Express中包含多个文件中的路由处理程序?](https://*.com/questions/6059246/how-to-include-route-handlers -in-multiple-files-in-express) – jsalonen

+0

可能的答案也在:https://*.com/questions/33946972/how-to-split-node-js-files-in-several-files – jsalonen

+0

我认为这将是更有利的保持所有的路线在一个文件,但有这些路由在不同的文件中调用函数。这样你就可以在一个地方完成所有路由,但可以分离业务逻辑功能。 – Matthew

你可以做的一件事是将“路由器”合并到你的快速函数中。

这是我如何做的一个小例子。 (无耻插头,请随时查看我的游戏源代码,更全面详细的路由器here

server.js

import login from "./routes/login"; 
app.use("/login", login); 

login.js

const router = express.Router(); 
router.route("/") //this points to the root route of /login 
    .post((req, res) => { 
     //post function here 
    }) 
    .get((req, res) => { 
     //get function here 
    }) 

这允许你做的很特定的功能路由,以及将路由器分成不同的文件(我将它们存储在路由中)

app_root 
----routes 
--------login.js 
----server.js 

这是它在文件体系结构中的外观基本结构。非常干净,非常容易模块化。

+0

这是IMO最好的解决方案。你可以看看'server.js',它本质上是一个文件中记录的路由,但是你也可以把这些函数/业务逻辑分解成逻辑块。 – Matthew

正如英镑射手上述评论的,我们使用类似的文件夹层次为我们的发展以及

server.js (node http server) 
app/ 
    | app.js (express app) 
    | api/ 
    | router.js (express master router to handler "/" 
    | exampleApi/ 
      | exampleRouter.js (routes for example api) 

PS: 我们用下面yoeman生成器生成上面的文件夹结构,我们 yaoeman generator npmjs linkyo-dodan git repo (以获得文件结构的想法)