我对Node.js和Express还很陌生。我正在学习Pedro Teixeria的书籍“Professional Node.js”的指导。我已经在Rackspace Cloud托管的CentOS服务器上安装了Node.js。然后,我安装了Express -
$ npm install -g express@2.5.x
这个命令安装了 Express 2.5.11,我已确认。
$ which express
然后,我使用以下命令初始化我的应用程序:
$ express my_app
这会创建一个带有默认文件的名为my_app的文件夹。最后,它还告诉我安装依赖项,我用以下命令执行此操作。进入my_app文件夹并发出命令。
$ npm install
我编辑了routes/index.js文件。现在它是这样的 -
/*
* GET home page.
*/
module.exports = function(app){
app.get('/', function(req, res){
res.render('index', { title: 'Express' });
});
};
我在routes文件夹下创建了一个名为users.js的文件。所以我的routes/users.js文件看起来像这样:
/*
* GET home page.
*/
module.exports = function(app){
app.get('/users/:name', function(req, res){
res.render('users/profile', { title: 'User Profile' });
});
};
然后我编辑了my_app文件夹(即主应用程序文件夹)中的应用程序文件。现在我的应用程序看起来像这样 -
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes');
var app = module.exports = express.createServer();
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
// Routes
require('./routes/index')(app);
require('./routes/users')(app);
app.listen(5124, function(){
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
});
现在,我使用以下命令在my_app文件夹中启动服务器 -
$ node app
我看到输出的信息是“Express server listening on port 5124 in development mode”
但是,当我在浏览器中输入URL 50.56.246.162:5124/users时,我看到Firefox报告“无法连接” 但是,至少应该显示一些错误。指令说,它应该至少显示“无法定位视图“users/index”,尝试:等等等等。
由于我已经在Linux shell中以root身份完成了所有操作,因此我还更改了权限,以便可以从浏览器中查看。此外,我不认为我需要编辑iptables来打开端口。 我做错了什么。 任何帮助都将不胜感激。