如何让路由器在不同的文件中工作
how to get router to work in a different file
如何正确导出路由器模块以与 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);
};
listening.js
var server = require('./server.js');
var showscreen = true;
if (showscreen) {
app.use('/server', server);
//possibly insert more to make router.get work
}
所以我想导出router.get方法,根据showscreen是否为真,在listening.js方法中使用。当前应用程序未定义
我遵循了本教程,但我仍然感到困惑
https://expressjs.com/en/guide/routing.html
评论更新:
server.js
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 将出现,否则 client.html,并且我更复杂的代码的工作方式(这非常简化)showscreen 只能在index.js
在您的 server.js 中添加以下代码
var express = require('express');
var routes = require('./routes/index');
var app = express();
app.use('/', routes);
//其他与初始化和启动服务器相关的代码代码
在您的路线文件夹中创建一个 index.js 。有以下代码
var express = require('express');
var router = express.Router();
/* GET index page. */
router.get('/', function(request, response){
//code to execute
});
module.exports = 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('./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);
};
listening.js
var server = require('./server.js');
var showscreen = true;
if (showscreen) {
app.use('/server', server);
//possibly insert more to make router.get work
}
所以我想导出router.get方法,根据showscreen是否为真,在listening.js方法中使用。当前应用程序未定义 我遵循了本教程,但我仍然感到困惑 https://expressjs.com/en/guide/routing.html
评论更新:
server.js
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 将出现,否则 client.html,并且我更复杂的代码的工作方式(这非常简化)showscreen 只能在index.js
在您的 server.js 中添加以下代码
var express = require('express');
var routes = require('./routes/index');
var app = express();
app.use('/', routes);
//其他与初始化和启动服务器相关的代码代码
在您的路线文件夹中创建一个 index.js 。有以下代码
var express = require('express');
var router = express.Router();
/* GET index page. */
router.get('/', function(request, response){
//code to execute
});
module.exports = router;
希望你能明白。