我正在使用NodeJS的ExpressJS web框架。
使用ExpressJS的人把他们的环境(开发、生产、测试……),他们的路线等放在app.js上。我认为这不是一个美好的方式,因为当你有一个大的应用程序,app.js太大了!
我想要这样的目录结构:
| my-application
| -- app.js
| -- config/
| -- environment.js
| -- routes.js
这是我的代码:
app.js
var express = require('express');
var app = module.exports = express.createServer();
require('./config/environment.js')(app, express);
require('./config/routes.js')(app);
app.listen(3000);
配置/ environment.js
module.exports = function(app, express){
app.configure(function() {
app.use(express.logger());
});
app.configure('development', function() {
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
app.configure('production', function() {
app.use(express.errorHandler());
});
};
配置/ routes.js
module.exports = function(app) {
app.get('/', function(req, res) {
res.send('Hello world !');
});
};
我的代码工作得很好,我认为目录的结构很漂亮。然而,代码必须进行调整,我不确定它是否好/漂亮。
是更好地使用我的目录结构和调整代码或简单地使用一个文件(app.js)?
谢谢你的建议!
我最近把模块当成了独立的小应用。
|-- src
|--module1
|--module2
|--www
|--img
|--js
|--css
|--#.js
|--index.ejs
|--module3
|--www
|--bower_components
|--img
|--js
|--css
|--#.js
|--header.ejs
|--index.ejs
|--footer.ejs
现在对于任何模块路由(#.js),视图(*.ejs), js, css和资产都是相邻的。
子模块路由设置在父文件#.js中,有另外两行
router.use('/module2', opt_middleware_check, require('./module2/#'));
router.use(express.static(path.join(__dirname, 'www')));
这样甚至子模块也是可能的。
不要忘记将view设置为src目录
app.set('views', path.join(__dirname, 'src'));
我给MVC风格的文件夹结构,请找到下面。
我们在大型和中型web应用程序中使用了波纹文件夹结构。
myapp
|
|
|____app
| |____controllers
| | |____home.js
| |
| |____models
| | |___home.js
| |
| |____views
| |___404.ejs
| |___error.ejs
| |___index.ejs
| |___login.ejs
| |___signup.ejs
|
|
|_____config
| |___auth.js
| |___constants.js
| |___database.js
| |___passport.js
| |___routes.js
|
|
|____lib
| |___email.js
|
|____node_modules
|
|
|____public.js
| |____css
| | |__style.css
| |
| |____js
| | |__script.js
| |
| |____img
| | |__img.jpg
| |
| |
| |____uploads
| |__img.jpg
|
|
|
|_____app.js
|
|
|
|_____package.json
我已经为生成express mvc文件夹结构器创建了一个npm模块。
请找到以下https://www.npmjs.com/package/express-mvc-generator
只需简单的步骤来生成和使用这个模块。
I)安装模块NPM
Ii)检查选项express -h
iii)生成express mvc结构express myapp
iv)安装依赖项:
v)打开config/database.js, Please configure your mongo db。
vi)运行应用节点app或nodemon app
vii)查看网址http://localhost:8042/signup或http://yourip:8042/signup