创build没有明确的子域

我试图运行快速的应用程序和fortunejs api并行,做到这一点,我试图永远使用,永远监视。

server.js文件:

var forever = require('forever-monitor'); var child = new (forever.Monitor)('app.js'); //express var child = new (forever.Monitor)('api.js'); //fortune child.on('watch:restart', function(info){ console.error('Restaring script because ' + info.file + ' changed'); }); child.on('exit', function () { console.log('your-filename.js has exited after 3 restarts'); }); child.start(); 

我知道这个问题可能会发生,因为两个脚本都争夺同一个地方,所以我想我的问题是我如何运行api脚本作为子域,…

很多谢谢你看我的问题,

更新Emil的回答

api.js

 var express = require('express'), http = require('http'), path = require('path'), bodyParser = require('body-parser'), config = require('./config/config.json'), db = require('./models/connect'); console.log('\033[2J'); app = express(); var publicUser = require('./routes/publicUser'), storeUser = require('./routes/storeUser'), api = require('./routes/fortune'), adminUser = require('./routes/adminUser'); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use('/', publicUser); app.use('/store', storeUser); app.use('/admin', adminUser); app.use('/api', api); //Load Server app.use(express.static('public')); app.listen(config.port, function(){ console.log('listening to port ' + config.port); }); 

fortune.js路线

 var fortune = require('fortune'); var express = fortune.express; var app = express.Router(); var config = require('../config/config.json'); app = fortune({ adapter:config.conn.adapter, db:config.conn.db, host:config.conn.host, port:config.conn.port, username:config.conn.username, password:config.conn.password, baseUrl:config.conn.baseUrl }); app.resource('jobs', { job: String, title: String, info: String }); app.resource('user', { user: String, pass: String }); module.exports = app; 

错误

 Router.use() requires middleware function but got a Object at Object.<anonymous> (/home/ash/www/app.js:21:6) 

如果您真的想运行多个nodejs服务器来支持此设置,则需要在不同的端口上运行它们。 一个可以托pipe在localhost:81上,另一个托pipe在localhost:82上。 要让他们在相同的端口上玩,你需要在前面的反向代理。 这通常是用nginx设置的。

另一种方法是使这两个应用程序在同一个http服务器上运行。 查看fortunejs文档,我发现它使用快递,它通过:

Fortune.router属性

路由器的命名空间,它实际上是一个快速的实例。

Fortune.js文档

应该可以只启动fortunejs并使用其路由器属性来添加自己的api方法:

 var fortune = require('fortune'); var options = { db: 'demo_app' }; var app = fortune(options); app.router.get('/your-own-route', function(req,res) { res.send("this is awesome!"); });