express的了解与实践

301 阅读2分钟

banner.jpg 「本文已参与低调务实优秀中国好青年社群的写作活动」。

前言

该篇讲述了express的安装与简单使用,实现一个奶茶选择器功能。 及如何用node渲染vue,react。适合要入门express的前端开发阅读

express是什么?express可以做什么?
express是基于node平台的web开发框架,封装了一些node操作服务端功能,比如
1.路由模块
2.简化http操作(状态码,请求包处理)
3.模板引擎
简化了我们的开发难度,可以为我们开启一个web服务端,实现前后端同构,这样我们就可以做SSR(服务端渲染)啦,还有代理请求,rpc调用,连接数据库等等。


项目初始化

新建一个service文件夹,并创建index.js和index.html,打开终端,安装依赖 npm i express

image.png

创建web服务,路由分发

1.引入express,生成应用实例,并指定端口,终端输入node index.js 这样一个web服务就启动了

image.png

2.根据不同路径,分发路由 引入node fs文件处理模块 路径为/时,返回index.html给浏览器渲染

const fs = require('fs');
const express = require('express'); //引入express
const app = express();  //生成应用实例

app.get('/favicon.ico', function (request, response) {
  // 一句 status(200) 代替 writeHead(200); end();
  response.status(200)
  return;
})

app.get('/', function (request, response) {
  // send接口会判断你传入的值的类型,文本的话则会处理为text/html
  response.send(
    fs.readFileSync(__dirname + '/index.html', 'utf-8')
  )
})


app.listen(3000); //监听3000端口
console.log('success listen');

3.编写简单奶茶选择器html页面

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>奶茶自由</title>
</head>

<body>
  <div>今天喝什么?</div>
  <br>
  <div id="output"></div>
  <br>
  <button id="seesee" style="height: 40px; width: 80px">看看</button>
</body>
<script>
  document.getElementById('seesee').addEventListener('click', function () {
    fetch(`http://${location.host}/drink`)
      .then((res) => {
        return res.text()
      })
      .then((text) => {
        document.getElementById('output').innerHTML += text + '<br/>';
      })
  })
</script>

</html>
  1. node index.js 启动node服务,打开3000端口,浏览器就能渲染到html页面。点击看看按钮发送drink请求
路由功能逻辑实现

5.处理drink请求路由逻辑

let drinkArr = ['古茗', '奈雪', '喜茶']
app.get('/drink', function (request, response) {
  let result = "";
  let random = Math.random() * drinkArr.length
  let drinkArrindex = Math.floor(random)

  result = drinkArr[drinkArrindex]
  response.send(result)
})
重启服务

6.重启服务,node index.js 点击按钮就能看到啦

image.png

总结

以上就是express的简单使用啦,希望对没有接触过express开发的人有所帮助。 当然还有很多强大的功能没写出来,比如express的中间件next(),和vue,react的渲染,分开来写吧