Javascript 模块。导出不适用于Express
我正试图组织快车的路线。但是我很难让一个简单的设置工作。我有两个文件,api.js,它有路由信息,index.js,它运行服务器 但是,当我尝试此操作时,在localhost:3000上没有得到响应 api.jsJavascript 模块。导出不适用于Express,javascript,node.js,express,Javascript,Node.js,Express,我正试图组织快车的路线。但是我很难让一个简单的设置工作。我有两个文件,api.js,它有路由信息,index.js,它运行服务器 但是,当我尝试此操作时,在localhost:3000上没有得到响应 api.js var express = require('express'); module.exports = function() { var router = express.Router(); router.get('/', function(req, res) { re
var express = require('express');
module.exports = function() {
var router = express.Router();
router.get('/', function(req, res) {
res.send('im the home page!');
});
return router;
}
var express = require('express');
var app = express();
var router = require('./api');
app.use('/',router);
app.listen(3000);
console.log('Listening on port 3000!');
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.send('im the home page!');
});
module.exports = router;
index.js
var express = require('express');
module.exports = function() {
var router = express.Router();
router.get('/', function(req, res) {
res.send('im the home page!');
});
return router;
}
var express = require('express');
var app = express();
var router = require('./api');
app.use('/',router);
app.listen(3000);
console.log('Listening on port 3000!');
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.send('im the home page!');
});
module.exports = router;
但是,当我将api.js更改为此时,它可以工作:
api.js
var express = require('express');
module.exports = function() {
var router = express.Router();
router.get('/', function(req, res) {
res.send('im the home page!');
});
return router;
}
var express = require('express');
var app = express();
var router = require('./api');
app.use('/',router);
app.listen(3000);
console.log('Listening on port 3000!');
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.send('im the home page!');
});
module.exports = router;
我不明白为什么底部的api.js可以工作,而顶部的api.js不能工作。module.exports在这两种情况下不应该返回相同的express Router吗?区别在于,在第一个版本中,您导出的函数返回路由器,而在第二个版本中,您导出的是路由器本身 在第一个版本中,Express调用导出的函数,将其传递给
req
和res
,期望它以某种方式处理请求。导出的函数当然不是用来处理请求的(它只是创建一个路由器并返回它),因此请求超时