Express 处理文件上传时,文件大小限制和 MIME 类型校验应该在哪一层做,为什么 MIME 头不可信?
围绕“Express 处理文件上传时,文件大小限制和 MIME 类型校验应该在哪一层做,为什么 MIME 头不可信”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 multer limits 在解析层截断、fileFilter 做初筛、Content-Type 可伪造故需魔数或扩展名二次校。
程序员面试题库第 35 页,收录第 1701–1750 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
围绕“Express 处理文件上传时,文件大小限制和 MIME 类型校验应该在哪一层做,为什么 MIME 头不可信”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 multer limits 在解析层截断、fileFilter 做初筛、Content-Type 可伪造故需魔数或扩展名二次校。
围绕“express.urlencoded({ extended }) 的 true 和 false 分别使用什么解析库,”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出 extended=true 用 qs 支持嵌套对象、false 用 querystring 只支持扁平键值,不讲安全加固(如参。
围绕“PUT(整体替换)与 PATCH(部分更新)在 Express 中校验请求体时规则应有什么不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 PUT 全字段必填、PATCH 全部可选但至少一项的校验策略差异及用 optional 标记实现,不讲数据库更新逻辑。
围绕“请求校验中的 sanitize(如 trim、escape)与 validate 各解决什么问题,顺序为何重要”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分清洗改写输入与判定拒绝输入,并说明先清洗后校验避免误判与绕过,不讲具体清洗规则清单。
围绕“请求校验应该放在 Express 中间件链的哪一层,校验失败应返回什么状态码”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须论证校验先于业务 handler、失败直接响应 400/422 不进 controller,并区分格式错误(400)与语义冲突(如 。
围绕“在 Express 4 中如何用包装函数让异步路由的异常统一进入错误处理中间件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出高阶函数包裹 handler 并 .catch(next) 的实现思路及其局限(中间件链内同步抛错仍需注意),不讲 Expres。
围绕“反向代理场景下 X-Forwarded-For/Proto/Host 在 Express 中分别影响哪些 req 属”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须映射 XFF→req.ip/req.ips、X-Forwarded-Proto→req.protocol/secure、。
围绕“发布分支需要只摘取主分支上某一个修复时,git cherry-pick 的正确用法和冲突来源是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 cherry-pick 复制提交产生新哈希及后续重复冲突的来源。
围绕“CI 中复用 Git 对象缓存(如复用 .git 目录或引用镜像)能省什么,过期引用会带来什么风险”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明对象复用减少下载与引用过期需 fetch 修正的平衡。
围绕“超大型前端 monorepo 中 git log/status 变慢,commit-graph 文件如何加速历史遍历”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明预计算提交图加速可达性遍历的机制及 core.commitGraph 开关。
围绕“用 commit-msg 钩子校验 Conventional Commits 格式,能为前端发版自动化带来什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明结构化提交信息如何支撑自动生成 changelog 与版本号推导。
围绕“CI 检出具体提交构建时处于 detached HEAD 状态,这对构建和回写版本号有什么影响”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明游离头状态不产生分支移动、回写提交会悬空的后果。
围绕“前端特性分支(feature branch)存活多久算过长,如何用 Git 手段缩短集成周期”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明长期分支导致合并冲突放大的机制及小步合并策略。
围绕“个人特性分支整理历史后必须强推时,git push --force-with-lease 比 --force 安全在”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 lease 校验远程引用未被他人推进的机制。
围绕“git fsck 报告的 dangling commit 是什么,前端仓库出现大量悬空对象说明什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明悬空对象的成因(变基、reset 后旧提交)与回收方式。
围绕“前端仓库长期演进后本地 .git 体积膨胀,git gc 与 git prune 分别回收什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分打包松散对象与删除无引用对象两类工作。
围绕“用 git archive 从某个 tag 打源码包作为交付物时,它与 clone 整个仓库相比少了什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 archive 不含 .git 元数据、可指定 commit 的确定性。
围绕“前端线上回归无法直接定位时,如何用 git bisect 二分查找引入问题的提交”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 good/bad 标记与自动化 bisect run 的判定脚本思路。
围绕“追查前端某段代码是谁、在哪次提交改动时,git blame 与 git log --follow 各回答什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分行级当前归属与跨重命名的文件级历史两种追溯意图。
围绕“需要把前端仓库交付给无法访问远程的隔离环境时,git bundle 如何打包仓库并支持增量”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 bundle 作为可 clone 的单文件仓库及基于上次 bundle 的增量能力。
围绕“如何用 git clean 安全清除前端工作区未跟踪的构建产物,又不误删刚写的新文件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 -n 预演、-x 包含忽略文件的区别及不可逆风险。
本文对比 Git Flow 与 Trunk-Based 分支模型,指出选择依据是发布频率和并行维护版本数量,并给出具体场景和适用边界。
围绕“如何只查看 monorepo 中某个前端包目录的提交历史,避免被无关包提交淹没”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 git log -- 路径过滤及 --follow 对重命名的处理。
本题解释前端发版为什么用附注标签而非轻量标签。附注标签存有 tagger 信息、时间、消息并支持签名,轻量标签只是指针。内容包括二者存储差异、审计场景、误用轻量标签的失败边界及选择判断。
围绕“同时修线上 bug 和开发新特性时,git worktree 相比多次 clone 或 stash 有什么优势”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明共享同一 .git 对象库且各工作区独立检出不同分支的机制。
围绕“Windows 与 macOS 协作者混用前端仓库时,如何用 .gitattributes 根治换行符(CRLF/L”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 text=auto 与 eol 属性的配置决策及一次性归一化步骤。
围绕“如何用 .gitattributes 的 export-ignore 让 git archive 交付包排除测试与工”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 export-ignore 只对 archive 产物生效、不影响工作区的语义。
围绕“如何用 .gitattributes 的 merge 驱动标记让锁文件冲突时走二进制或并集策略”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明为特定路径指定合并策略的机制。
围绕“前端仓库里 .gitignore 该管哪些产物,个人编辑器文件应放仓库级还是全局 ignore”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分项目共识规则与个人环境规则的归属位置。
围绕“线上版本需要热修但主分支已混入新特性时,如何基于发版 tag 切出 hotfix 分支”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 git checkout -b 从 tag 建分支保证修复基底纯净的做法。
围绕“如何用 .gitattributes 标记构建产物文件,避免它们干扰 diff 与代码统计”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 generated 标记对 diff 展示与统计的影响。
本文对比 monorepo 与 git submodule 在跨包变更原子性、指针同步、克隆与协作上的工程代价,给出具体场景和判断依据。
围绕“前端 monorepo 克隆过慢时,git clone --depth 浅克隆解决了什么、在 CI 里有什么坑”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明浅克隆截断历史对 git describe/merge-base 等依赖历史命令的影响。
围绕“monorepo 中多个前端包独立发版时,tag 命名为什么必须包含包名,例如 pkg-a@1.2.0”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明单命名空间 tag 与多包独立版本冲突的问题及 describe 按路径消歧的需求。
围绕“git clone --filter=blob:none 部分克隆在超大型前端仓库中如何减少体积、代价是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明按需拉取 blob 的懒加载机制与离线场景受限的代价,不与浅克隆混为一谈。
围绕“前端仓库用 Git 钩子(hooks)做提交前检查,为什么 .git/hooks 不能随仓库分发,工程上怎么解决”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出 hooks 目录不被版本控制的限制及 core.hooksPath 的替代机制。
围绕“哪些前端质量检查适合放 pre-push 钩子,哪些必须留给 CI,划分依据是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按耗时与可绕过性划分本地快速反馈与强制门禁的职责。
围绕“为什么前端主分支要禁止 force push,从 Git 机制上说明它破坏了什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明强制推送丢弃远程提交使协作者历史分叉的机制。
围绕“git pull 默认产生合并提交使前端仓库历史杂乱,如何用 pull --rebase 或配置保持线性”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 pull.rebase 配置项效果及本地未推送提交被变基的边界。
围绕“前端仓库误提交了大体积产物导致克隆缓慢,怎样从历史中彻底移除该文件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明重写全部历史及协作者需重新克隆的代价。
围绕“前端仓库主分支要求线性历史时,git rebase 与 git merge 该选哪个,代价是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 rebase 重写提交哈希对已推送分支的破坏性及黄金法则。
围绕“误 git reset --hard 丢失了未推送的前端提交,如何用 git reflog 找回”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 reflog 记录 HEAD 移动轨迹及用 reset/cherry-pick 恢复的步骤。
围绕“git reset 的 --soft、--mixed、--hard 分别把暂存区和工作区重置成什么状态,前端误提交时”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须逐一说明三种模式对 HEAD、索引、工作区的作用。
围绕“已发布到远程的错误提交应该用 git revert 还是 git reset 撤销,判断标准是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须以历史是否已共享为判断标准说明 revert 生成反向提交的安全性。
围绕“回滚一次已合并的特性分支(merge commit)用 git revert -m 时,-m 参数的意义和后续再合并”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明指定主线父提交的意义及 revert 后原分支再合并被忽略的机制。
围绕“如何用 git describe 基于最近标签生成前端包的预发布版本号”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 describe 输出中距离标签的提交数与提交哈希如何拼成可追溯版本串。
围绕“客户端钩子可以被 --no-verify 绕过,如何用服务端钩子(pre-receive)强制前端仓库的提交规范”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明客户端钩子可绕过与服务端钩子拒绝推送的强制力差异。
围绕“前端发版为什么建议用 GPG 签名 tag(git tag -s),它保证和不保证什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明签名证明 tag 创建者身份但不审查代码内容的边界。
围绕“git sparse-checkout 如何让开发者只检出 monorepo 中自己负责的前端子目录”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释工作区稀疏模式只写匹配路径文件、历史仍完整的机制。
分析 squash merge 压缩提交对 bisect 定位精度的具体影响,说明中间提交不稳定时压缩反而有利,并给出权衡和操作判断。