node express 快速入门

node express 快速入门


基本的概念和使用

express 是目前基于node.js开发的比较流行的web开发框架,可以帮助用户快速搭建一个功能完善的网站。

express的核心也是基于node.js的http模块进行封装,提供出来比较方便的使用框架,下面看一个简单的例子使用express框架搭建一个简单的web服务器

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

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

app.listen(9090);

上面的代码就构建了一个简单的服务器,基于Express开发提供api的后台的话,大部分工作都是在编写路由层和数据库操作(搭配mongoose使用很便捷,也可采用其他数据库及数据库中间件)。

所谓“路由”,就是指为不同的访问路径,指定不同的处理方法。

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

在Express中每个中间件都可以从App实例中得到3个参数对象,依次分别为Request(Http请求对象),Response(Http响应对象),Next回调函数(表示下一个中间件),每一个中间件都可以处理request请求,并做处理,并决定是否传给下一个中间件

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

function uselessMiddleware(req, res, next) {
  next();
}

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

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

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


在Express 注册中间件的方法:use

use是express注册中间件的方法,它返回一个函数。下面是一个连续调用两个中间件的例子。

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

//使用中间件

app.use(function(req,res,next){
    console.log('The First Middleware');
    //调用next
    next();
    });

app.use(function(req,res){
        console.log('The Last Middleware.');
        res.writeHead(200, { "Content-Type": "text/plain" });
        res.end('Hello ');
    });

app.listen(9090);

解释下调用逻辑:
在改实例中,app注册了两个中间件,第一个含有参数next,第二个不含有next参数,收到Http请求后,先调用第一个中间件,然后打印一行信息,在第一个中间件中打印完毕信息紧接着调用了next(),又将请求传递到了下一个中间件,在第二个中间件中并没有next,所以该请求到此结束,中间件的调用流程是顺序执行的,原则就是:先注册先调用。

再来看下路由

在上面的简单的例子中也可以实现简单的路由(主要根据request请求的url来做判断)

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

//开始编写简单的路由

app.use(function(req,res,next){
        if(req.url === '/'){
            res.writeHead(200, { "Content-Type": "text/plain");
            res.end('Home');
        }else{
            next();
        }
    });

app.use(function(req,res,next){
        if(req.url == '/about'){
            res.writeHead(200,{'Content-Type':'text/plain'});
            res.end('About');
        }else{
            next();
        }
    });

//处理找不到的情况
app.use(function(req,res){
    res.writeHead(404, { "Content-Type": "text/plain" });
    res.end('Not Found');
    });

app.listen(9090);

上面的方式看着可用,但是不够优雅,不够简洁,use提供另一种方式使用:除了在回调函数内部判断请求的网址,use方法也允许将请求网址写在第一个参数。这代表,只有请求路径匹配这个参数,后面的中间件才会生效。无疑,这样写更加清晰和方便。

上面的代码就可以改写为

app.use('/home',function(req,res,next){
        res.writeHead(200,{'Content-Type':'text/plain'});
        res.end('Home');
    });
//下面的就不再一一列举了
app.use(....);
....

关于express的方法说明
除了提供use之外,还提供了一些方便处理请求的方式,get、post、put、delete方法,即HTTP动词都是Express的方法。还有一个all方法即所有的请求都会调用改中间件

举例说明:

app.all("*", function(request, response, next) {
  response.writeHead(200, { "Content-Type": "text/plain" });
  next();
});

app.get("/", function(request, response) {
  response.end("Welcome to the homepage!");
});

app.get("/about", function(request, response) {
  response.end("Welcome to the about page!");
});

app.get("*", function(request, response) {
  response.end("404!");
});

到此为止,你应该对这些有了个基础的概念,下面说下路由层的分离,一般会在项目中的专门文件夹routes下

举个简单的例子
1、编写路由层route_test.js

module.exports = function(app){

    app.get('/',function(req,res){
        .....
    });
    app.get('/about',function(req,res){
        .....
    });
    app.post('/create',function(req,res){
        .....
    });

    .....

}

使用

var express = require('express')
var app = express();
//导入路由层

var route = reqiure('./route_test');
route(app);

app.listen(9090);

希望能帮助入门的用户,详细的可参照阮一峰老师的 Express框架

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要安装Express,首先你需要安装Node.jsNode.js是一种基于Chrome V8引擎的JavaScript运行环境,用于开发服务器端应用程序。在Ubuntu 18.04上安装Node.js可以参考【Node.jsNode.js入门(一):安装、编辑、编译运行。 安装Node.js之后,你可以使用npm(Node包管理器)来安装ExpressExpress是一个基于Node.js框架,用于开发Web应用程序。它提供了路由功能、异常处理等基本框架的支持。要安装Express,你可以按照以下步骤进行操作:[2] 1. 在你的项目目录中,打开终端或命令行窗口。 2. 运行以下命令来安装Express:npm install express 3. 安装完成后,你可以在你的项目中使用Express来开发Web应用程序。 下面是一个简单的使用Express的示例代码: ```javascript const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) }) ``` 你可以将上述代码保存为一个名为app.js的文件,并在终端或命令行窗口中运行以下命令来启动应用程序: ``` $ node app.js ``` 现在你可以在浏览器中访问http://localhost:3000来测试你的Express应用程序。 希望以上信息能对你有所帮助!如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【Node.jsNode.js入门(三):Express安装、测试、使用](https://blog.csdn.net/u010168781/article/details/127565961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值