Node.js和express不能GET /

时间:2016-06-30 22:25:06

标签: node.js express

我正在尝试为Android应用程序构建一个节点后端,并且遇到一些问题。 当连接到localhost:8080时,我总是得不到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 /

时仍然无法获取

我错过了什么或者我做了一些可怕的错误吗? 希望我从这里得到帮助:)

2 个答案:

答案 0 :(得分:2)

function encode(cap, item, pLimit, tLimit) {
    return `${cap},${item},${pLimit},${tLimit}`;
}

应该是

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

答案 1 :(得分:2)

您的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模块中删除该行。这是误导和不必要的。