Я создаю приложение с помощью Node и Express. Тем не менее, я вижу, что скоро станет трудно управлять всеми маршрутами, расположенными внутри app.js
. Я поместил все мои модели в подкаталог /models
.
Здесь моя текущая структура приложения:
app.js
models
-- products
-- customers
-- ...
public
views
node_modules
В app.js
:
var express = require('express'),
routes = require('./routes'),
user = require('./routes/user'),
http = require('http'),
path = require('path'),
EmployeeProvider = require('./models/employeeprovider').EmployeeProvider,
Products = require('./models/products').Products,
Orders = require('./models/orders').Orders,
Customers = require('./models/customers').Customers,
checkAuth = function(req, res, next) {
if (!req.session.user_id) {
res.send('You are not authorized to view this page');
} else {
next();
}
};
var app = express();
Затем некоторая конфигурация, такая как port
, views
каталог, механизм рендеринга и т.д.
Далее вниз app.js
У меня есть маршруты:
app.get('/product/edit', auth, function(req, res) {
Products.findAll(function(error, prds) {
res.render('product_edit', {
title: 'New Product',
products: prds
});
});
});
В начало Я назначаю содержимое models/products.js
переменной, все работает нормально. Однако сохранение всех маршрутов внутри app.js
не является идеальным. Но если переместить маршруты на routes/product.js
и загрузить модели Products
:
var prod = require('../models/products.js');
Я получаю сообщение о том, что объект не имеет метода findAll
.
Что я делаю неправильно? Как удалить маршруты из app.js
?