我正在使用 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');
我收到一条错误消息,说 object has no method findAll
。
我究竟做错了什么?如何从中删除路线app.js
?