NodeJS多个实例并需要子文件夹中的路由

时间:2014-03-14 18:51:54

标签: javascript node.js express

我正在为我的Chrome扩展程序编写一个多实例NodeJS应用程序。

我认为我陷入了与子文件夹相关的所有问题,需要和导出模块。

这是我的应用结构:

enter image description here

在最底层,我有start.js,它引导应用程序的一些主要部分,如Express,模型,视图,控制器,路由等。

var express = require('express'),
http = require('http'),
arguments = process.argv.slice(2),
port = arguments[0] || 3000;

var app = express(),
server = app.listen(port),
io = require('socket.io' ).listen(server ),
routes = require('./config/routes')(app);

app.configure(function(){
"use strict";

app.set('views', __dirname + '/app/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.static(__dirname + '/app/public'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
});

app.configure('development', function() {
"use strict";

app.use(express.errorHandler());
});

console.log('Server is running on port ' + port);

module.exports = app;

在app的根文件夹中,我自己拥有实例文件。像app.js(主要),dealer.js(经销商实例)等...

我像这样运行它们:

  

[deb0rian @ localhost www.bkbot.org] $ node ./app/dealer.js 3003

app / dealer.js目前非常简单:

var app = require('../start.js');
app.get('/', app.routes.dealer.index);

我的config / routes / index.js是:

var fs = require('fs' ),
required_files = [];

module.exports = function(app){
fs.readdirSync(__dirname).forEach(function(file) {
    if (file == "index.js") return;
    var name = file.substr(0, file.indexOf('.'));
    require('./' + name)(app);
});
}

它无法通过此错误读取我的路径文件:

  

[deb0rian @ localhost www.bkbot.org] $ node ./app/dealer.js 3003

     

info - socket.io开始

     

path.js:299

     

return splitPathRe.exec(filename).slice(1);                          ^

     

RangeError:超出最大调用堆栈大小

我的文件结构有问题吗? 我希望能够只读取/ config / routers / dealer中的路由,如果我运行该特定实例,没有问题给它命令行参数,但我必须首先克服这个问题而且我不知道如何阅读只有特定的路径子目录。

任何帮助或建议将不胜感激!

由于

0 个答案:

没有答案