簡體   English   中英

在Node.js中使用單獨的控制器和路由

[英]Using separate controllers and routes in Node.js

我正在尋找主觀建議(我知道這可能會被關閉),但我希望能夠在node.js項目中分離路由和控制器,所以我有一些問題:

  • 嘗試是沒用的,而node.js哲學是否擁有更少/更大的JS文件?
  • 我希望能夠要求(“路由”)並將其所有路由連接到我的控制器所需的模塊。 如果我把所有東西放在index.js ,我可以輕松地做到這一點,但這看起來很奇怪。 我已經在做app.get("/" controllers.index); 樣式分離,但我正忙着構建一個模塊,只包含另一個模塊中的所有JS文件。 我錯過了什么嗎?
  • 或者也許有一個完全不同的node.js樣式來做這個,我試圖將我的ASP.NET MVC知識映射得太深了?

如果你想獲得這一切成一個文件,你可以嘗試這樣的事情,這需要每個文件在./routes/並調用出口到每個功能app作為參數:

// routing.js

var fs = require('fs');

module.exports = function(app) {
  fs.readdirSync(__dirname + '/routes/').forEach(function(name) {
    var route = require('./routes/' + name);
    route(app);
  });
}

// routes/index.js

module.exports = function(app) {
  app.get('/something', function(req, res) { ... });
  app.get('/something/else', function(req, res) { ... });
}

// routes/pages.js

module.exports = function(app) {
  app.get('/pages/first', function(req, res) { ... });
  app.get('/pages/second', function(req, res) { ... });
}

// server.js

var app = express.createServer();
require('./routing')(app); // require the function from routing.js and pass in app

在GitHub上的Express' example目錄中也有一些有趣的例子,比如基於MVC的一個實現RESTful路由,就像Rails那樣。

如果你的目的是做一些RESTish API服務器,試一試: https//github.com/kilianc/node-apiserver也是例子: https//github.com/kilianc/node-apiserver/blob/master/例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM