2015-06-01 4 views
2

Я всегда использовал express.Router() как путь к префиксным маршрутам для API. Например:Несколько экспресс-маршрутизаторов

var app = express(), 
    api = express.Router(); 

app.use("/api", api); 

Теперь я могу это сделать:

api.post("/contact", function(req, res){ 
    //process contact 
}); 

Но теперь я хочу больше, чем 1 из этих маршрутов. Например, я бы сделал это:

var app = express(), 
    api = express.Router(), 
    auth = express.Router(); 

app.use("/api", api); 
app.use("/auth", auth); 

К сожалению, это не сработает. Если я позвоню /auth/login из моего Углового интерфейса, он приходит как /api/auth/login.

Как использовать несколько маршрутизаторов, как это?

ответ

2

Отредактировано: Возможно, это то, что вы ищете?

var app = express(); 

var api = express.Router() 
    .get('/contact', contacts.get); 

var auth = express.Router() 
    .get('/login', login); 

app.use('/api', api); 
app.use('/auth', auth); 
+0

Я хочу, чтобы маршруты 'api' и' auth 'были отдельными. Поэтому запросы будут поступать в '/ api/contact' или'/auth/login'. В настоящий момент 2 маршрута, похоже, конфликтуют друг с другом. Поэтому в моем угловом коде я делаю: '$ http.post ("/auth/login ")', а в узле он направляет его как '/ api/auth/login', который неверен – Coop

+0

Я не вижу конфликта, если только вы определили маршрут '/ auth/login' на своем маршрутизаторе' api', который принадлежит маршрутизатору 'api'. Я отредактировал свой ответ, но если это нехорошо, можете ли вы обновить свой вопрос более подробно о том, что именно вы хотите направлять на какие методы? –

+1

А я думаю, что это была проблема с моим угловым кодом! Да, вы работаете над кодом, спасибо. – Coop

Смежные вопросы