本篇内容主要讲解“Node.js中Express框架怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中Express框架怎么用”吧!
为普陀等地区用户提供了全套网页设计制作服务,及普陀网站建设行业解决方案。主营业务为网站制作、成都网站建设、普陀网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
很多语言都有一些框架,这些框架可以帮助我们更加快捷地开发以及维护项目,像 JS 就有 Vue、React、Angular 等流行框架;而 Node.js 也不例外,它也有一些框架可以帮助我们开发 Node.js 项目。
目前比较流行的 Node.js 框架有 Express、Koa 和 Egg.js,无论是哪个 Node.js 框架,都是基于中间件来实现的,而中间件的执行方式就需要依据洋葱模型。
洋葱模型
抽象一点解释,就是从洋葱中心点穿过去,就必须先一层层向内穿入洋葱表皮进入中心点,然后再从中心点一层层向外穿出表皮,这里有个特点:进入时穿入了多少层表皮,出去时就必须穿出多少层表皮。先穿入表皮,后穿出表皮,这种结构是符合栈结构先进后出的原则的。
在 Node.js 框架中,洋葱的表皮我们可以定义为中间件:
从外向内进入中心点的过程是一个关键词
next();而从内向外则是每个中间件执行完毕后,进入下一层中间件,一直到最后一层。
下面来简单了解一些 Express 框架吧!
Express
Express 是 Node.js 中 HTTP 服务的一个框架,而要了解一个框架,最好的方法是
去了解它的关键功能
推导出它要解决的问题是什么
那要了解它的关键功能,我们可以去 Express 的网站 查看它的 Features,这些核心功能都是为了让我们更加方便、简洁地写出 HTTP 服务,从而大大减轻我们的开发负担,让我们快速上手开发。

一些 Features:
路由:将对应路由分开作为模块处理
request/response属性的简化,让我们不需要经过转换,然后直接使用对应的属性。request:pathname、query等response:send()、json()、jsonp()等中间件(
next())更好地组织流程代码
异步会打破
Express的洋葱模型
Express 改造石头剪刀布游戏
现在通过使用 Express 框架来改造石头剪刀布游戏,game.js 游戏模块和 index.html 页面的代码没有变动,可以去 github 上面 clone。
index.js Express 改造,需要先用 npm 安装 express:npm i express。
const fs = require('fs');
const express = require('express');
const game = require('./game');
let playerWon = 0; // 赢的次数
const app = express();
// 路由功能,将对应路由功能分开作为模块处理,到时候也可以放到其它文件去
// 通过 app.get 设定 /favicon.ico 路径的路由
// .get 代表请求 method 是 get,所以这里可以用 post、delete 等。这个能力很适合用于创建 rest 服务
app.get('/favicon.ico', function (request, response) {
// 一句 status(200) 即可代替 writeHead(200); end();
// response.writeHead(200);
// response.end();
response.status(200);
return;
})
// 打开页面 index.html
app.get('/', function (request, response) {
// fs.createReadStream(__dirname + '/index.html').pipe(response);
// send接口会判断你传入的值的类型,文本的话则会处理为text/html
// Buffer的话则会处理为下载,html文件需要加上 `utf-8`
response.send(fs.readFileSync(__dirname + '/index.html', 'utf-8'))
})
// next()同步状态下没有问题的,但是一旦有了异步,洋葱模型就打破了
app.get('/game',
function (request, response, next) {
if (playerWon >= 3) {
response.status(500);
response.send('我不会再玩了!');
return;
}
// 通过next执行后续中间件
next();
// 当后续中间件执行完之后,会执行到这个位置
if (response.playerWon) {
playerWon++;
}
},
// 获取玩家的操作
function (request, response, next) {
// Express 中对 request 做了一些处理,可以直接拿到 query 参数
// const query = querystring.parse(parsedUrl.query);
// const playerAction = query.action;
const query = request.query;
const playerAction = query.action;
response.playerAction = playerAction;
// 通过next执行后续中间件
next();
},
function (request, response) {
// 通过 response 去挂载一些参数
let playerAction = response.playerAction;
// 执行游戏逻辑
const gameRes = game(playerAction);
// 先返回头部
// response.writeHead(200);
response.status(200);
// 根据不同的游戏结果返回不同的说明
if (gameRes == 0) {
// response.end('平局!');
response.send('平局!');
} else if (gameRes == 1) {
response.send('你赢了!');
// 玩家胜利次数统计+1
// playerWon++;
response.playerWon = true;
} else {
response.send('你输了!');
}
}
)
app.listen(3000);到此,相信大家对“Node.js中Express框架怎么用”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
网页名称:Node.js中Express框架怎么用
分享地址:http://www.jxjierui.cn/article/ipjshs.html


咨询
建站咨询
