gpt4 book ai didi

javascript - Module.Exports 不适用于 Express

转载 作者:搜寻专家 更新时间:2023-11-01 00:00:22 27 4
gpt4 key购买 nike

我正在尝试用 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) {
res.send('im the home page!');
});
return router;
}

index.js

var express = require('express');
var app = express();

var router = require('./api');

app.use('/',router);
app.listen(3000);
console.log('Listening on port 3000!');

但是,当我将 api.js 更改为此时,它起作用了:

api.js

var express = require('express');

var router = express.Router();
router.get('/', function(req, res) {
res.send('im the home page!');
});

module.exports = router;

我不明白为什么底部的 api.js 可以工作,而顶部的却不能。 module.exports 不应该在两种情况下返回相同的 express Router 吗?

最佳答案

不同之处在于,在第一个版本中,您导出一个返回路由器的函数,而在第二个版本中,您导出路由器本身。 p>

在第一个版本中,Express 调用您的导出函数,将 reqres 传递给它,期望它以某种方式处理请求。导出的函数当然不是为了处理请求而设计的(它只是创建一个路由器并返回它),所以请求超时。

关于javascript - Module.Exports 不适用于 Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36226317/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com