我有一个用express制作的nodejs应用程序。
这是我的服务器代码:
var express = require('express');
var server = express();
var build = require('./build');
var logger = require('morgan');
var compress = require('compression');
server.use(logger);
server.use(compress);
server.use(require('method-override'));
server.use(require('body-parser'));
server.use(require('cookie-parser'));
var runBuild = function (params) {
"use strict";
var pushData = params.pushData;
build({branch: pushData.branch},
function (err, stdout, path) {
});
};
server.post('/AndroidCIServer', function (req, res) {
"use strict";
res.send();
});
server.get('/', function(req, res) {
res.render('index', { title: 'Express' });
});
server.listen(8089);
runBuild({
pushData: {
branch: 'master'
}
});
我尝试去http://96.44.166.162:8089
,但我没有得到回复。我在端口80上安装了一个nginx服务器,如果我转到http://96.44.166.162/
,它会响应nginx索引页面。
(IP是外部IP,在VPS中)
发生了什么事?
答案 0 :(得分:2)
需要调用模块以便它们返回实际的中间件:
server.use(logger());
server.use(compress());
server.use(require('method-override')());
server.use(require('body-parser')());
server.use(require('cookie-parser')());
这样做是因为它允许您轻松地将配置传递给模块,以便按照您希望的方式配置返回的中间件。