node.js express 学习 (一) hello world

由于博主使用的是 win7 操作系统,所以有个地方要提一下,如果你的系统账户不是管理员账户(也就是说你安装软件的时候会弹出是否以管理员身份运行的选项)的话,那么在安装之前需要先以管理员身份运行 cmd.exe 或 npm , 否则执行 npm install 命令的时候有些东西由于权限的问题不会成功安装。

# 安装 express
E:node>npm install express

# 查看 express 版本 (如果没有以管理员身份安装就可能找不到 express)
E:node>express -V
3.4.8

# 新建一个测试实例
E:node>express mySite

   create : mySite
   create : mySite/package.json
   create : mySite/app.js
   create : mySite/public
   create : mySite/public/images
   create : mySite/routes
   create : mySite/routes/index.js
   create : mySite/routes/user.js
   create : mySite/views
   create : mySite/views/layout.jade
   create : mySite/views/index.jade
   create : mySite/public/javascripts
   create : mySite/public/stylesheets
   create : mySite/public/stylesheets/style.css

   install dependencies:
     $ cd mySite && npm install

   run the app:
     $ node app

# 安装 express 的模板引擎
E:node>npm install jade

# 运行 express
E:nodemySite>node app
Express server listening on port 3000

如果运行 express 实在是找不到命令,就考虑用全路径吧:

E:node>node E:nodenode_modulesexpressbinexpress mySite

   create : mySite
   create : mySite/package.json
   create : mySite/app.js
   create : mySite/public
   create : mySite/public/images
   create : mySite/routes
   create : mySite/routes/index.js
   create : mySite/routes/user.js
   create : mySite/views
   create : mySite/views/layout.jade
   create : mySite/views/index.jade
   create : mySite/public/javascripts
   create : mySite/public/stylesheets
   create : mySite/public/stylesheets/style.css

   install dependencies:
     $ cd mySite && npm install

   run the app:
     $ node app

弹出的提示说目前server 已经在 3000 端口上运行了,那么这个时候就已经可以打开浏览器访问 http://localhost:3000 或者 http://127.0.0.1:3000

当你看到 “Welcome to Express” 字样的时候表示你已经成功搭建了一个 express 站点。

目前 express 默认示例的 mySite/app.js 代码是:

/**
 * Module dependencies.
 */

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');

var app = express();

// 环境配置
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}

// 路由配置
app.get('/', routes.index);
app.get('/users', user.list);

// 开启服务
http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

根据路由配置,我们知道有两个路径是可以访问的:
一个是 http://127.0.0.1:3000 即默认的根目录 ‘/’
还有一个是 http://127.0.0.1:3000/users 即 ‘/users’

我们可以访问 http://127.0.0.1:3000/users 看下, 页面上显示 respond with a resource。 这个地方

根据:
var user = require(‘./routes/user’);
app.get(‘/users’, user.list);

可以找到在 /routes/user.js

/*
 * GET users listing.
 */

exports.list = function(req, res){
  res.send("respond with a resource");
};

这里面的参数 req 是 request 的简写,即客户端发上来的请求
res 是 response 的简写,是服务端的响应。
res.send(“respond with a resource”); 是指服务端下发一个字符串,内容就是刚才页面上看到的了。

你也可以修改一下这个字符串看看,不过需要注意的时候修改之后,node app 需要重新启动一次(这个可以通过一些模块来解决重启的问题)。

Advertisements

2 thoughts on “node.js express 学习 (一) hello world

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google+ photo

You are commenting using your Google+ account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s