gpt4 book ai didi

Node.js 和express 无法获取/

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:48 25 4
gpt4 key购买 nike

我正在尝试为 Android 应用程序构建一个 Node 后端,但遇到了一些问题。当连接到 localhost:8080 时,我总是得到cannot GET/。

这是我的 app.js 代码:

/** Dependencies **/
var express = require('express');
var connect = require('connect');
var app = express();
var port = process.env.PORT || 8080;

//Configurations
app.use(express.static(__dirname + '/public'));
app.use(connect.logger('dev'));
app.use(connect.json());
app.use(connect.urlencoded());

//Routes

require('./routes/routes.js');

app.listen(port);
console.log("The App is running on port " + port);

这是route.js 文件:

var app     = module.exports ;

module.exports = function(app){
app.get('/', function(req, res){
res.end("Node-Android");
});
}

每次尝试访问 localhost:8080/时,我仍然收到 Cannot GET/

我是否遗漏了什么或者我做了什么严重错误的事情?希望我能从这里得到帮助:)

最佳答案

您的 routes.js 模块使用以下行声明需要参数(app 对象)的构造函数:

module.exports = function(app){ ... }

但是,您只需包含这样的模块:

require('./routes/routes.js');

这意味着您只是加载模块,但从未调用构造函数。因此,您需要更改此设置:

require('./routes/routes.js');

对此:

require('./routes/routes.js')(app);

这将调用构造函数并向其传递所需的 app 对象,然后它可以使用该对象来初始化其路由。

<小时/>

此外,您执行此操作的模块中有一行误导性且不必要的代码:

var app     = module.exports ;

该特定的 app 变量未在模块中的任何位置使用,并且具有误导性,因为它与构造函数的 app 参数具有相同的名称。您应该从routes.js 模块中删除该行。这是误导性的,也是不必要的。

关于Node.js 和express 无法获取/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38134214/

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