如何在节点js中运行两个程序

时间:2015-10-19 07:48:26

标签: node.js socket.io chat

我正在学习Nodejs。我想在URL中运行两个脚本(一个是登录,另一个是聊天)。当我运行 npm start 命令时,我的登录页面被打开,当我运行 node index.js 命令时,我的聊天应用程序工作。我希望我的聊天应用程序在登录后能够正常工作。所以我应该指定我的聊天索引,以便它可以工作。

我的app.js就在这里

var http = require('http');
var express = require('express');
var session = require('express-session');
var bodyParser = require('body-parser');
var errorHandler = require('errorhandler');
var cookieParser = require('cookie-parser');
var MongoStore = require('connect-mongo')(session);
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();

app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/app/server/views');
app.set('view engine', 'jade');
app.use(cookieParser());
app.use(session({
secret: 'faeb4453e5d14fe6f6d04637f78077c76c73d1b4',
proxy: true,
resave: true,
saveUninitialized: true,
store: new MongoStore({ host: 'localhost', port: 27017, db: 'nodechat'})
 })
);
  app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(require('stylus').middleware({ src: __dirname + '/app/public'    }));
app.use(express.static(__dirname + '/app/public'));

require('./app/server/routes')(app);

if (app.get('env') == 'development') app.use(errorHandler());

http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});

1 个答案:

答案 0 :(得分:1)

在满足登录条件后,您需要为此分叉child_process,如此

var fork = require('child_process').fork;
var child = fork('node ./index.js');

有一些与fork一起使用的参数,比如何时退出子进程等。请参阅documentation