我正在尝试为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 /
时仍然无法获取我错过了什么或者我做了一些可怕的错误吗? 希望我从这里得到帮助:)
答案 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模块中删除该行。这是误导和不必要的。