Express.JS使用详解

安装了node(下载)之后, 在你的机器上创建一个目录,开始你的第一个应用程序。

$ mkdir hello-world

在这个目录中你将定义应用程序“包”,这和任何其他node的包没有什么不同。文件目录中的json文件,明确定义了一个依赖项。你可以用npm命令获取express最新版本,你喜欢这样做,而不是安装“3.x”以外的版本,以防止任何未知的惊喜。

{ "name": "hello-world", "description": "hello world test app", "version": "0.0.1", "private": true, "dependencies": { "express": "3.x" } }

现在,您已经有了一个包。json文件在这个目录你可以使用npm(1)安装这种依赖关系,在这种情况下只需要输入:

$ npm install

一旦npm完成,你就会在/node_modules目录中存有一个你依赖的Express 3.x。您可以用npm ls验证这一点,就像以下代码片段所展示的Express树和自己的依赖关系。

$ npm ls hello-world@0.0.1 /private/tmp └─┬ express@3.0.0beta7 ├── commander@0.6.1 ├─┬ connect@2.3.9 │ ├── bytes@0.1.0 │ ├── cookie@0.0.4 │ ├── crc@0.2.0 │ ├── formidable@1.0.11 │ └── qs@0.4.2 ├── cookie@0.0.3 ├── debug@0.7.0 ├── fresh@0.1.0 ├── methods@0.0.1 ├── mkdirp@0.3.3 ├── range-parser@0.0.4 ├─┬ response-send@0.0.1 │ └── crc@0.2.0 └─┬ send@0.0.3 └── mime@1.2.6

现在来创建应用程序本身!创建一个名为app.js或server.js文件,不论你喜欢哪一个,引入express,然后用express()创建一个新的应用程序:

var express = require('express'); var app = express();

新应用程序实例可以通过app.VERB()开始定义路线,在这种情况下,通过“Hello World”字符串回应“GET/”请求。req和res是提供给您的完全相同的node对象,因此你可能会调用res.pipe(),req.on('data', callback) 和其他你会做的与Express无关的事情。

Express增强这些对象为你提供更高层次的接口如res.send(),除此之外为你添加内容长度:

app.get('/hello.txt', function(req, res){ res.send('Hello World'); });

现在为连接调用app.listen()方法绑定和监听,接受相同的参数作为节点的net.Server #listen():

var server = app.listen(3000, function() { console.log('Listening on port %d', server.address().port); });

使用express(1)来生成应用程序

Express团队维护便捷的项目生成器,命名为express-generator(1)。如果你用npm全局安装express-generator,那么你可以从你电脑的任何地方访问到它:

$ npm install -g express-generator

这个工具提供了一种简单的方法来得到一个应用程序框架,但范围有限,例如,它只支持几个模板引擎,而Express自己事实上支持为node建立任何网站框架模板。可通过help查看:

Usage: express [options] Options: -h, --help output usage information -V, --version output the version number -e, --ejs add ejs engine support (defaults to jade) -H, --hogan add hogan.js engine support -c, --css add stylesheet support (less|stylus|compass) (defaults to plain css) -f, --force force on non-empty directory

如果你想生成一个任何情况都支持的应用程序您只需要简单地执行::

$ express --css stylus myapp create : myapp create : myapp/package.json create : myapp/app.js create : myapp/public create : myapp/public/javascripts create : myapp/public/images create : myapp/public/stylesheets create : myapp/public/stylesheets/style.styl create : myapp/routes create : myapp/routes/index.js create : myapp/views create : myapp/views/index.jade create : myapp/views/layout.jade install dependencies: $ cd myapp && npm install run the app: $ DEBUG=myapp node app

像任何其他node的应用程序,您必须安装以下的依赖关系:

然后让我们开始吧。

$ npm start

这是所有你需要让一个简单的应用程序启动并运行。记住,Express不绑定到任何特定的目录结构,这些只是给你一个指导。应用程序结构的选择可在github库中查看 示例 。

错误处理

错误处理中间件定义就像普通中间件,然而必须定义4个参数数量,这是函数签名(err, req, res, next):

app.use(function(err, req, res, next){ console.error(err.stack); res.send(500, 'Something broke!'); });

虽然强制的错误处理中间件通常不是定义在最后,但在其他app.use()后,其调用如下所示:

var bodyParser = require('body-parser'); var methodOverride = require('method-override'); app.use(bodyParser()); app.use(methodOverride()); app.use(app.router); app.use(function(err, req, res, next){ // logic });

在这些中间件的响应是完全任意的。您可能希望回应一个HTML错误页面,一个简单的消息,一个JSON字符串,或任何其他你喜欢的回应。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgpwwp.html