美文网首页
3.Node学习(三)express开发框架

3.Node学习(三)express开发框架

作者: cherry_677a | 来源:发表于2018-09-05 19:02 被阅读0次

    一:express包含的底层技术以及中间件的含义

    底层:http模块

    Express框架建立在node.js内置的http模块上。http模块生成服务器的原始代码如下。

    var http=require("http");

    var app=http.createServer(function(request,response){

    response.writeHead(200,{"Content-Type":"text/plain"});

    response.end("Hello world!");});

    app.listen(3000,"localhost");

    上面代码的关键是http模块的createServer方法,表示生成一个HTTP服务器实例。该方法接受一个回调函数,该回调函数的参数,分别为代表HTTP请求和HTTP回应的request对象和response对象。

    Express框架的核心是对http模块的再包装。上面的代码用Express改写如下。

    var express=require('express');

    var app=express();

    app.get('/',function(req,res){

            res.send('Hello world!');

    });

    app.listen(3000);

    比较两段代码,可以看到它们非常接近。原来是用http.createServer方法新建一个app实例,现在则是用Express的构造方法,生成一个Epress实例。两者的回调函数都是相同的。Express框架等于在http模块之上,加了一个中间层。

    什么是中间件

    简单说,中间件(middleware)就是处理HTTP请求的函数。它最大的特点就是,一个中间件处理完,再传递给下一个中间件。App实例在运行过程中,会调用一系列的中间件。

    每个中间件可以从App实例,接收三个参数,依次为request对象(代表HTTP请求)、response对象(代表HTTP回应),next回调函数(代表下一个中间件)。每个中间件都可以对HTTP请求(request对象)进行加工,并且决定是否调用next方法,将request对象再传给下一个中间件。

    一个不进行任何操作、只传递request对象的中间件,就是下面这样。

    functionuselessMiddleware(req,res,next){next();}

    上面代码的next就是下一个中间件。如果它带有参数,则代表抛出一个错误,参数为错误文本。

    functionuselessMiddleware(req,res,next){next('出错了!');}

    抛出错误以后,后面的中间件将不再执行,直到发现一个错误处理函数为止。

    二:安装express模块

    首先假定你已经安装了 Node.js,接下来为你的应用创建一个目录,然后进入此目录并将其作为当前工作目录。

    $ mkdir myapp

    $ cd myapp

    通过 npm init 命令为你的应用创建一个 package.json 文件。 欲了解 package.json 是如何起作用的,请参考 Specifics of npm’s package.json handling

    $ npm init

    此命令将要求你输入几个参数,例如此应用的名称和版本。 你可以直接按“回车”键接受默认设置即可,下面这个除外:

    entry point: (index.js)

    键入 app.js 或者你所希望的名称,这是当前应用的入口文件。如果你希望采用默认的 index.js 文件名,只需按“回车”键即可。

    接下来安装 Express 并将其保存到依赖列表中:

    $ npm install express --save

    如果只是临时安装 Express,不想将它添加到依赖列表中,只需略去 --save 参数即可:

    $ npm install express

    安装 Node 模块时,如果指定了 --save 参数,那么此模块将被添加到 package.json 文件中 dependencies 依赖列表中。 然后通过 npm install 命令即可自动安装依赖列表中所列出的所有模块。

    图2-1 安装express 图2-2 查看生成的文件

    三.express的hello world实例

    接下来,我们一起创建一个基本的 Express 应用。

    注意:这里所创建是一个最最简单的 Express 应用,并且仅仅只有一个文件 — 和通过 Express 应用生成器 所创建的应用_完全不一样_,Express 应用生成器所创建的应用框架包含多个 JavaScript 文件、Jade 模板和针对不同用途的子目录。

    进入 myapp 目录,创建一个名为 app.js 的文件,然后将下列代码复制进去:

    var express=require('express');

    var app=express();

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

            var server=app.listen(3000,function(){

            var host=server.address().address;

            var port=server.address().port;

            console.log('Example app listening at http://%s:%s',host,port);

    });

    上面的代码启动一个服务并监听从 3000 端口进入的所有连接请求。他将对所有 (/) URL 或 路由 返回 “Hello World!” 字符串。对于其他所有路径全部返回 404 Not Found

    req (请求) 和 res (响应) 与 Node 提供的对象完全一致,因此,你可以调用 req.pipe()、req.on('data', callback) 以及任何 Node 提供的方法。

    通过如下命令启动此应用:

    $ node app.js

    然后在浏览器中打开 http://localhost:3000/ 并查看输出结果。

    运行程序

    部分内容转载来源:http://www.cnblogs.com/mq0036/p/5243312.html

    相关文章

      网友评论

          本文标题:3.Node学习(三)express开发框架

          本文链接:https://www.haomeiwen.com/subject/ynoawftx.html