Node.js 如何让路由器在不同的文件中工作

Node.js 如何让路由器在不同的文件中工作,node.js,express,router,Node.js,Express,Router,如何正确导出要与showscreen=true语句一起使用的路由器模块??这是我试图做的简化版本 server.js var express = require('express'); var app = express(); var http = require('http').Server(app); const path = require('path'); var io = require('socket.io')(http); var showscreen = require('./l

如何正确导出要与showscreen=true语句一起使用的路由器模块??这是我试图做的简化版本

server.js

var express = require('express');
var app = express();
var http = require('http').Server(app);
const path = require('path');
var io = require('socket.io')(http);
var showscreen = require('./listening.js');
var router = express.Router();
app.use(express.static(__dirname + '/server'));
    app.get('/', function(req, res){
    console.log("hello");
    res.sendFile('C:/Users/O77616/Documents/practiceCode/client.html');
});

router.get('/server', function(req, res){
console.log("hello");
res.sendFile('C:/Users/O77616/Documents/practiceCode/grumpy.html');
});

app.post('/', function(req,res) {
   res.send('post it all');
});

http.listen(3000, function(){
    console.log('listening on localhost:3000');
});
module.exports = function(app) {
   app.use('/server', router); 
};
var io = require('socket.io')(http);
var express = require('express');
var routes = require('./routes/index');
var app = express();

var http = require('http').Server(app);

app.use('/', routes);

app.get('/', function(req, res){
   console.log("hello");
   res.sendFile('C:/Users/O77616/Documents/practiceCode/client.html');
});

http.listen(3000, function(){
   console.log('listening on localhost:3000');
});
listing.js

var server = require('./server.js');
var showscreen = true;
if (showscreen) {
   app.use('/server', server);

  //possibly insert more to make router.get work
}
因此,我想根据showscreen是否为true导出要在listening.js方法中使用的router.get方法。当前未定义应用程序 我遵循了这个教程,但我仍然感到困惑

根据评论更新:

server.js

var express = require('express');
var app = express();
var http = require('http').Server(app);
const path = require('path');
var io = require('socket.io')(http);
var showscreen = require('./listening.js');
var router = express.Router();
app.use(express.static(__dirname + '/server'));
    app.get('/', function(req, res){
    console.log("hello");
    res.sendFile('C:/Users/O77616/Documents/practiceCode/client.html');
});

router.get('/server', function(req, res){
console.log("hello");
res.sendFile('C:/Users/O77616/Documents/practiceCode/grumpy.html');
});

app.post('/', function(req,res) {
   res.send('post it all');
});

http.listen(3000, function(){
    console.log('listening on localhost:3000');
});
module.exports = function(app) {
   app.use('/server', router); 
};
var io = require('socket.io')(http);
var express = require('express');
var routes = require('./routes/index');
var app = express();

var http = require('http').Server(app);

app.use('/', routes);

app.get('/', function(req, res){
   console.log("hello");
   res.sendFile('C:/Users/O77616/Documents/practiceCode/client.html');
});

http.listen(3000, function(){
   console.log('listening on localhost:3000');
});
routes/index.js

 var express = require('express');
 var router = express.Router();
 var showscreen = true;

if (showscreen) {
    router.get('/', function(request, response){ 
    response.sendFile('C:/Users/O77616/Documents/practiceCode/grumpy.html');
    });
}

module.exports = router;

我删除了listening.js文件。我不确定这是否清楚,但我希望这样,如果showscreen是真的,就会出现grumpy.html,else client.html,以及我更复杂的代码的工作方式(这是非常简化的)showscreen只能在服务器的index.js中访问。js添加以下代码

var express = require('express');
var routes = require('./routes/index');
var app = express();

app.use('/', routes);
var express = require('express');
var router = express.Router();

/* GET index page. */
router.get('/', function(request, response){
   //code to execute 
});

module.exports = router;
//与初始化和启动服务器相关的其他代码

在routes文件夹中创建index.js。有以下代码

var express = require('express');
var routes = require('./routes/index');
var app = express();

app.use('/', routes);
var express = require('express');
var router = express.Router();

/* GET index page. */
router.get('/', function(request, response){
   //code to execute 
});

module.exports = router;

希望您能理解。

您有两种方法,在文件之间共享
app
,1)导出路由并在server.js中使用,在那里您可以访问
app
,2)从listening.js导出一个函数,该函数将接受
app
作为参数,并从server.js调用该fn,将其作为参数传递给
app
。对,我只是不知道该怎么做,因为我想我尝试了这些方法。我尝试了这么做,但我的屏幕加载了难以置信的长时间。没有,让我更新问题并向您展示我的代码。请检查下面的示例,其中有一个完整的例子。事实上,我得到了它的工作,我不得不把var http后的应用程序,谢谢!!