美文网首页
前端面试2021-009

前端面试2021-009

作者: 大牧莫邪 | 来源:发表于2021-10-22 10:05 被阅读0次

1、如何创建并启动一个Express服务应用

const express = require("express")
const app = express()
app.listen(3000, err=> {console.log("服务已经启动")})

2、什么是路由?Express中是如何管理路由的?

路由是WEB服务器中,对用户的请求进行分发,交给对应的业务处理函数进行业务受理的一种操作模式
Express中包含了入口模块中的主路由express(),以及模块化拆分后的子路由对象express.Router(),创建的子路由对象使用固定语法user()函数完成子路由注册和使用

3、什么是中间件?Express中有那些不同的中间件?

中间件是工作在客户端和服务器之间的中间组件,主要用于拦截请求和响应,对请求和响应进行功能扩展的中间组件
Express中主要包含三种中间件,分别是内置中间件、第三方中间件以及自定义中间件

4、常见的网络协议都有那些?常见的网络端口都有那些?

常见的网络协议HTTP超文本传输协议、HTTPS提供安全数据通道的超文本传输协议、FTP文件传输协议、SMTP简单邮件协议、SSH安全外壳协议/隧道协议、TCP传输控制协议、UDP广播协议、IP数据包协议....
常见的网络端口HTTP协议使用的80端口、HTTPS协议使用的443端口、FTP协议使用的20/21端口、SSH协议使用的22端口,SMTP协议使用的25端口,mysql数据库使用的3306端口...

5、GET请求和POST请求的联系和区别?

GET请求和POST请求都是HTTP1.1规范中的请求格式
GET请求用于向服务器请求获取数据,请求中可以附带参数,参数类型只能是字符串数据,并且参数在传输的时候会展示在URL地址中不利于数据安全,参数的长度受到限制
POST请求用于向服务器请求新增数据,请求中可以附带参数,参数类型可以是任意类型的数据,参数会包含在请求体(request body)中进行传递,具有一定的数据保密性

6、什么是session,什么是cookie,它们有什么联系和区别?

session表示客户端和服务器之间的会话
cookie表示客户端存储的临时数据
WEB应用开发中会话跟踪技术或者状态保持技术中可以使用session完成会话跟踪,通过cookie记录在客户端的数据完成状态保持,session和cookie都会一起使用
session是存储在服务端的,可以存储任意类型的数据,需要注意的是没有必要的情况下尽量不要在session中存储大量数据,导致服务器存储空间出现问题
cookie是存储在客户端的,只能字符串类型的数据,需要注意的是不同的浏览器对于存储的cookie数据大小也是有限制的,一般数据量不要求超过4k字节的数据

7、为什么说HTTP协议是一种无状态协议?项目中怎么解决这种无状态问题的呢?

HTTP协议模式下,浏览器访问服务器数据,一旦数据成功响应,客户端和服务器之间的连接就会断开,保持连接的状态也就断开,所以说HTTP协议是一种无状态协议
项目中通过会话跟踪技术,通过session和cookie的使用解决无状态协议下的状态数据保持

8、项目中的某些路径需要登录才能访问,Express中怎么解决未登录用户限制访问的问题

用户的登录主要通过状态保持技术实现,所以可以在需要登录的路由中进行登录判断,未登录用户限制访问即可,但是这样的操作不利于大量限制函数;
Express中可以通过自定义中间件,拦截所有的请求,在所有业务请求处理之前进行登录身份验证,未登录的情况下限制访问跳转到登录页面

// express中的中间件工作顺序
// 1、内置中间件
app.use(express.static("public"))

// 2、自定义中间件(所有请求之前执行)
app.use((req, resp, next) => {
    ...
    next()
})
// 3、执行请求处理,路由
app.use("/path", module)

// 4、错误中间件:自定义中间件
app.use((req, resp, next) => {
    resp.status(404)
    ....
})

相关文章

  • 前端面试2021-009

    1、如何创建并启动一个Express服务应用 2、什么是路由?Express中是如何管理路由的? 路由是WEB服务...

  • 前端面试的经典题

    前端面试的经典题 前端面试三部曲 前端面试概念收集器 前端面试的经典题 前端面试的难题和怪题 Javascript...

  • 值得看的前端面试文章- 收藏集 - 掘金

    【前端面试 -- 四月二十家前端面试题分享】1-5 套个人解题答案 - 前端 - 掘金前端面试题 前端面试--四月...

  • 前端面试概念收集器

    前端面试概念收集器 前端面试三部曲 前端面试概念收集器 前端面试的经典题 前端面试的难题和怪题 本文分为 概念,原...

  • 前端面试的难题和怪题

    前端面试的难题和怪题 前端面试三部曲 前端面试概念收集器 前端面试的经典题 前端面试的难题和怪题 函数 答案 Er...

  • PHPer 面试指南-扩展阅读资源整理

    前端篇 收集的前端面试题和答案 前端开发面试题 史上最全的web前端面试题汇总及答案 前端工程师手册 HTTP协议...

  • PHPer 面试指南-扩展阅读资源整理

    前端篇 收集的前端面试题和答案 前端开发面试题 史上最全的web前端面试题汇总及答案 前端工程师手册 HTTP协议...

  • 前端面试

    前端面试

  • 前端模拟面试【二面】

    前言 之前写了一篇关于前端模拟面试的文章——前端模拟面试【一面】 今天咱们接着进行前端模拟面试二面。因为有很多是一...

  • 2020-01-19做些js的数组练习吧

    1.前端面试必问之数组去重 前端面试必问之数组去重 2.前端面试必问之深拷贝浅拷贝 3.

网友评论

      本文标题:前端面试2021-009

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