由于博主使用的是 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 需要重新启动一次(这个可以通过一些模块来解决重启的问题)。