我想要实现的是将app.js拆分为单独的部分。这是迄今为止成功的。到目前为止,我的结构看起来像这样:
package.json
app.js
app/
- server/
- views/
- router.js
- public/
- css/
- images/
- js/
- robots.txt
听起来不错?在我的app.js中,我有以下代码:
http.createServer(app).listen(app.get('port'), function() {
console.log("app:" + app.get('port') + " running through express server.");
})
我觉得我的http:createServer太小而且容易受到攻击,我想扩展它。有没有办法把它放在./app/server/http.js
里面并包含toobusy模块(对我而言,这些例子似乎太难了)。
有解决方案吗?
答案 0 :(得分:0)
如果我正确理解您的问题,您只需创建一个app/server/http.js
文件并将此代码放入其中:
var toobusy = require('toobusy'),
app = require('../../app');
var server = http.createServer(app);
server.listen(app.get('port'), function () { ... });
process.on('SIGINT', function() {
server.close();
// calling .shutdown allows your process to exit normally
toobusy.shutdown();
process.exit();
});
然后你可以做以下两件事之一:
1)在package.json
文件中,将main
字段设置为app/server/http.js
,然后您可以使用npm start
启动应用,如果那样的话。
2)另一个选项(首选,IMO)是在项目的根目录中创建一个index.js
文件,如下所示:
module.exports = require('app/server/http');
然后您可以使用
启动服务器$ NODE_ENV=production node /path/to/project <arguments go here>
无论哪种方式,您都可以获得toobusy
的好处,同时实现您想要的分离。