【发布时间】:2017-08-08 00:21:13
【问题描述】:
我正在使用 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 中删除路由?
【问题讨论】: