您的位置:首页 > Web前端 > Node.js

NodeJS——用express创建一个简单的服务器

2019-07-29 11:34 267 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_41387631/article/details/97622793

express

上一节我们讲了如何用http模块去创建服务器,但是大家会发现当url变得越来越多时,用http来创建的服务器所有的访问地址全在一起,就会显得很混乱,而且访问性能也不是最好的。所以后面就提出了express。它基于NodeJS平台、快速、开发、极简的web开发框架。它创建web服务器的步骤:
1、引入模块
const express=require(‘require’);
2、创建服务器
var app=express();
3、添加端口号
app.listen(8080);`
express创建服务器和http模块创建服务器的三步都相似,但是express提出了路由和路由器的概念。或许很多人会想路由到底是什么?就举个例子,在任何一个网站都有用户注册,登录,用户的增删改查等很多功能,而一个路由就是指其中的一个功能。而所有的路由最终都会搭载在路由器上,即由路由器管理这些路由

路由

上面我们说了在一个功能就相当于一个路由。那具体解释是如何?
HTTP客户端发来请求,服务器端程序会根据会根据请求方法和请求url确定一个响应方法,而在express中的路由即由三部分组成:

app.METHOD(URL,function(req,res){});

METHOD:请求方法(get/post)
URL:请求的url
res:响应对象
: send 设置响应内容并发送请求,路由中只能使用一次
: sendFile 设置文件并发送,必须使用绝对路径
: redirect() 响应的重定向,跳转到另一个url
req:请求对象
: query:获取请求的查询字符串的数据,格式为对象
: params:获取路由传参的数据,格式是对象
路由传参:

app.get(;/order/:did',function(req,res){
req.params;//获取路由传参的数据
});

例子:创建路由,请求的方法get,请求的url:/shopping,使用路由传参来传递商品的价格和规格,然后把价格和规格显示到浏览器中

app.get('shopping/:price/:spec',function(req,res){
res.send(`
价格:${req.params.price}<br>
规格:${req.params.spec}
`);
});

例子:练习: 使用express创建web服务器,创建登录路由(获取登录的html),请求的方法:get,请求的url: /login,响应文件login.html

app.get('/login',function(req,res){
res.sendFile(__dirname+'login.html文件路径');
});

获取post请求的数据

//请求方法:post 请求url:/mylogin
//响应’登录成功
app.post('/mylogin',function(req,res){
//获取post请求传递的数据
//监听是否有数据传递,自动触发回调函数
req.on('data',function(chunk){
//chunk就是传递的数据
var str=chunk.toString();
//把查询字符串解析为对象
var obj=querystring.parse(str);
console.log(obj);
});
res.send('登入成功');
});

路由器

在一个项目中出现相同的url是很常见的,用户有list功能,而商品也有list功能。为了避免出现混淆,路由器可将同一模块下的所有的路由管理起来,路由器最终要挂载到web服务器下才能使用。
1、创建路由器模块

const express=require('express');
//创建路由器对象
const router=express.Router();
//添加路由
router.get('/user',function(req,res){
res.send('响应内容');
});

2、在服务器中使用并引入

//创建服务器
const express=require('express');
//引入路由器模块
const userRouter=require('/user.js');
var app=express();
app.listen(8080);
//在服务器中使用路由器,并在所有的url中添加前缀,访问形式   /user/list
app.use('/user',userRouter);

用express创建服务器条理更加的清晰。
下一节我们来讲讲中间件到底是个什么东西?
欢迎大家一起来探讨,有错误就直接指出来哦!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: