使用Express初始化一个基础web站点,即简略介绍
Node 安装:
参考:http://zy-email1991.iteye.com/blog/2105062
安装Express:
express 是 Node.js 上最流行的 Web 开发框架,正如他的名字一样,使用它我们可以快速的开发一个 Web 应用。
我们需要用全局模式安装 express,因为只有这样我们才能在任意命令行中使用它。
npm install -g express@3
注意:@3代表安装Express3.x版本,参数 -g 指定全局安装,如果不带参数 -g 则安装只在当前文件夹中有效。
新建一个工程:
新建一个工程文件夹,使用终端进入工程文件夹,使用Express初始化工程
express -e blog
注意:参数 blog 是工程名,会在当前文件夹中创建一个 blog 的工程文件夹,参数 -e 是指定当前工程使用 ejs 模板引擎。
至此,我们用 express 初始化了一个名为blog的工程项目,并指定使用 ejs 模板引擎。
工程结构:
app.js:启动文件,或者说入口文件
package.json:存储着工程的信息及模块依赖,当在 dependencies 中添加依赖的模块时,运行 npm install
,npm 会检查当前目录下的 package.json,并自动安装所有指定的模块
node_modules:存放 package.json 中安装的模块,当你在 package.json 添加依赖的模块并安装后,存放在这个文件夹下
public:存放 image、css、js 等文件
routes:存放路由文件
views:存放视图文件或者说模版文件
下面是对 app.js 文件中代码的具体介绍
/** * Module dependencies. */ /* 这里我们通过 require() 加载了 express、http、path 模块, 以及 routes 文件夹下的 index.js 和 user.js 文件。 */ var express = require('express'); var routes = require('./routes/index'); var user = require('./routes/user'); var http = require('http'); var path = require('path'); var app = express(); // all environments //设置端口为 process.env.PORT 或 3000。 app.set('port', process.env.PORT || 3000); //设置 views 文件夹为存放视图文件的目录,即存放模板文件的地方, // __dirname 为全局变量,存储当前正在执行的脚本所在的目录 app.set('views', path.join(__dirname, 'views')); //设置视图模版引擎为 ejs。 app.set('view engine', 'ejs'); //connect 内建的中间件,使用默认的 favicon 图标, // 如果想使用自己的图标,需改为 app.use(express.favicon(__dirname + '/public/images/favicon.ico')); // 这里我们把自定义的 favicon.ico 放到了 /public/images 文件夹下。 app.use(express.favicon()); //connect 内建的中间件,在开发环境下使用,在终端显示简单的日志, app.use(express.logger('dev')); //app.use(express.json()); //app.use(express.urlencoded()); //connect 内建的中间件,用来解析请求体, // 支持 application/json, application/x-www-form-urlencoded, 和 multipart/form-data。 app.use(express.bodyParser()); /* app.use(express.bodyParser()); 相当于: app.use(express.json()); app.use(express.urlencoded()); app.use(express.multipart()); 这里我们仍然使用: app.use(express.bodyParser()); */ //connect 内建的中间件,可以协助处理 POST 请求,伪装 PUT、DELETE 和其他 HTTP 方法。 app.use(express.methodOverride()); //调用路由解析的规则。 app.use(app.router); //connect 内建的中间件,设置根目录下的 public 文件夹为存放 image、css、js 等静态文件的目录。 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 服务器并监听 3000 端口, 成功后在命令行中显示 Express server listening on port 3000, 然后我们就可以在浏览器访问 localhost:3000 了。 */ http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); });
到此,一个基本的web站点就初始化完成了,我们就可以在此基础上开发我们的web应用了。