Express 处理文件上传时,文件大小限制和 MIME 类型校验应该在哪一层做,为什么 MIME 头不可信?
Express 处理文件上传时,文件大小限制和 MIME 类型校验应该在哪一层做,为什么 MIME 头不可信? 本文先给出可直接复述的结论,再用最小代码说明Express 上传 文件大小限制 MIME 校验 fileFilter的工作方式、判断依据、项目边界和常见误区。
程序员面试题库第 35 页,收录第 1701–1750 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
Express 处理文件上传时,文件大小限制和 MIME 类型校验应该在哪一层做,为什么 MIME 头不可信? 本文先给出可直接复述的结论,再用最小代码说明Express 上传 文件大小限制 MIME 校验 fileFilter的工作方式、判断依据、项目边界和常见误区。
express.urlencoded({ extended }) 的 true 和 false 分别使用什么解析库,影响什么数据形态? 本文先给出可直接复述的结论,再用最小代码说明Express urlencoded extended qs querystring 区别的工作方式、判断依据、项目边界和常见误区。
PUT(整体替换)与 PATCH(部分更新)在 Express 中校验请求体时规则应有什么不同? 本文先给出可直接复述的结论,再用最小代码说明Express PUT PATCH 请求体校验 必填字段的工作方式、判断依据、项目边界和常见误区。
请求校验中的 sanitize(如 trim、escape)与 validate 各解决什么问题,顺序为何重要? 本文先给出可直接复述的结论,再用最小代码说明Express 校验 sanitize 与 validate 区别的工作方式、判断依据、项目边界和常见误区。
请求校验应该放在 Express 中间件链的哪一层,校验失败应返回什么状态码? 本文先给出可直接复述的结论,再用最小代码说明Express 请求校验 中间件位置 422 400的工作方式、判断依据、项目边界和常见误区。
在 Express 4 中如何用包装函数让异步路由的异常统一进入错误处理中间件? 本文先给出可直接复述的结论,再用最小代码说明Express 4 异步路由 错误包装 asyncHandler的工作方式、判断依据、项目边界和常见误区。
反向代理场景下 X-Forwarded-For/Proto/Host 在 Express 中分别影响哪些 req 属性? 本文先给出可直接复述的结论,再用最小代码说明Express X-Forwarded-For req.ip req.protocol的工作方式、判断依据、项目边界和常见误区。
发布分支需要只摘取主分支上某一个修复时,git cherry-pick 的正确用法和冲突来源是什么? 本文先给出可直接复述的结论,再用最小代码说明git cherry-pick 发布分支挑拣提交的工作方式、判断依据、项目边界和常见误区。
CI 中复用 Git 对象缓存(如复用 .git 目录或引用镜像)能省什么,过期引用会带来什么风险? 本文先给出可直接复述的结论,再用最小代码说明CI git 对象缓存 引用镜像风险的工作方式、判断依据、项目边界和常见误区。
超大型前端 monorepo 中 git log/status 变慢,commit-graph 文件如何加速历史遍历? 本文先给出可直接复述的结论,再用最小代码说明git commit-graph 大仓库 性能的工作方式、判断依据、项目边界和常见误区。
用 commit-msg 钩子校验 Conventional Commits 格式,能为前端发版自动化带来什么? 本文先给出可直接复述的结论,再用最小代码说明commit-msg 钩子 Conventional Commits 校验的工作方式、判断依据、项目边界和常见误区。
CI 检出具体提交构建时处于 detached HEAD 状态,这对构建和回写版本号有什么影响? 本文先给出可直接复述的结论,再用最小代码说明detached HEAD CI 检出提交的工作方式、判断依据、项目边界和常见误区。
前端特性分支(feature branch)存活多久算过长,如何用 Git 手段缩短集成周期? 本文先给出可直接复述的结论,再用最小代码说明feature 分支生命周期 长期分支风险的工作方式、判断依据、项目边界和常见误区。
个人特性分支整理历史后必须强推时,git push --force-with-lease 比 --force 安全在哪? 本文先给出可直接复述的结论,再用最小代码说明git push --force-with-lease 安全强推的工作方式、判断依据、项目边界和常见误区。
git fsck 报告的 dangling commit 是什么,前端仓库出现大量悬空对象说明什么? 本文先给出可直接复述的结论,再用最小代码说明git fsck dangling commit 悬空对象的工作方式、判断依据、项目边界和常见误区。
前端仓库长期演进后本地 .git 体积膨胀,git gc 与 git prune 分别回收什么? 本文先给出可直接复述的结论,再用最小代码说明git gc prune 仓库体积回收的工作方式、判断依据、项目边界和常见误区。
用 git archive 从某个 tag 打源码包作为交付物时,它与 clone 整个仓库相比少了什么? 本文先给出可直接复述的结论,再用最小代码说明git archive 打源码包 发布交付的工作方式、判断依据、项目边界和常见误区。
前端线上回归无法直接定位时,如何用 git bisect 二分查找引入问题的提交? 本文先给出可直接复述的结论,再用最小代码说明git bisect 二分定位回归提交的工作方式、判断依据、项目边界和常见误区。
追查前端某段代码是谁、在哪次提交改动时,git blame 与 git log --follow 各回答什么问题? 本文先给出可直接复述的结论,再用最小代码说明git blame 与 git log --follow 追溯差异的工作方式、判断依据、项目边界和常见误区。
需要把前端仓库交付给无法访问远程的隔离环境时,git bundle 如何打包仓库并支持增量? 本文先给出可直接复述的结论,再用最小代码说明git bundle 离线交付 增量打包的工作方式、判断依据、项目边界和常见误区。
如何用 git clean 安全清除前端工作区未跟踪的构建产物,又不误删刚写的新文件? 本文先给出可直接复述的结论,再用最小代码说明git clean 清除未跟踪文件 安全用法的工作方式、判断依据、项目边界和常见误区。
前端团队选择 Git Flow 还是 Trunk-Based Development 的分支模型,判断依据是什么? 本文先给出可直接复述的结论,再用最小代码说明Git Flow 与 Trunk-Based 分支模型选择的工作方式、判断依据、项目边界和常见误区。
如何只查看 monorepo 中某个前端包目录的提交历史,避免被无关包提交淹没? 本文先给出可直接复述的结论,再用最小代码说明git log 按路径过滤 monorepo 包历史的工作方式、判断依据、项目边界和常见误区。
前端发版打 tag 应该用附注标签(annotated)还是轻量标签,为什么? 本文先给出可直接复述的结论,再用最小代码说明git tag 附注标签 轻量标签 发版的工作方式、判断依据、项目边界和常见误区。
同时修线上 bug 和开发新特性时,git worktree 相比多次 clone 或 stash 有什么优势? 本文先给出可直接复述的结论,再用最小代码说明git worktree 多工作区 并行分支的工作方式、判断依据、项目边界和常见误区。
Windows 与 macOS 协作者混用前端仓库时,如何用 .gitattributes 根治换行符(CRLF/LF)抖动? 本文先给出可直接复述的结论,再用最小代码说明.gitattributes eol CRLF LF 跨平台的工作方式、判断依据、项目边界和常见误区。
如何用 .gitattributes 的 export-ignore 让 git archive 交付包排除测试与工程配置文件? 本文先给出可直接复述的结论,再用最小代码说明export-ignore gitattributes 交付包精简的工作方式、判断依据、项目边界和常见误区。
如何用 .gitattributes 的 merge 驱动标记让锁文件冲突时走二进制或并集策略? 本文先给出可直接复述的结论,再用最小代码说明.gitattributes merge driver 锁文件冲突的工作方式、判断依据、项目边界和常见误区。
前端仓库里 .gitignore 该管哪些产物,个人编辑器文件应放仓库级还是全局 ignore? 本文先给出可直接复述的结论,再用最小代码说明.gitignore 仓库级 全局 core.excludesFile的工作方式、判断依据、项目边界和常见误区。
线上版本需要热修但主分支已混入新特性时,如何基于发版 tag 切出 hotfix 分支? 本文先给出可直接复述的结论,再用最小代码说明基于 tag 切 hotfix 分支 灰度回滚的工作方式、判断依据、项目边界和常见误区。
如何用 .gitattributes 标记构建产物文件,避免它们干扰 diff 与代码统计? 本文先给出可直接复述的结论,再用最小代码说明.gitattributes linguist-generated diff 产物标记的工作方式、判断依据、项目边界和常见误区。
本文对比 monorepo 与 git submodule 在跨包变更原子性、指针同步、克隆与协作上的工程代价,给出具体场景和判断依据。
前端 monorepo 克隆过慢时,git clone --depth 浅克隆解决了什么、在 CI 里有什么坑? 本文先给出可直接复述的结论,再用最小代码说明git shallow clone 浅克隆 CI 大仓库的工作方式、判断依据、项目边界和常见误区。
monorepo 中多个前端包独立发版时,tag 命名为什么必须包含包名,例如 pkg-a@1.2.0? 本文先给出可直接复述的结论,再用最小代码说明monorepo tag 命名 包名前缀 独立版本的工作方式、判断依据、项目边界和常见误区。
git clone --filter=blob:none 部分克隆在超大型前端仓库中如何减少体积、代价是什么? 本文先给出可直接复述的结论,再用最小代码说明git partial clone --filter=blob:none 大仓库的工作方式、判断依据、项目边界和常见误区。
前端仓库用 Git 钩子(hooks)做提交前检查,为什么 .git/hooks 不能随仓库分发,工程上怎么解决? 本文先给出可直接复述的结论,再用最小代码说明git hooks 无法入库 分发方案的工作方式、判断依据、项目边界和常见误区。
哪些前端质量检查适合放 pre-push 钩子,哪些必须留给 CI,划分依据是什么? 本文先给出可直接复述的结论,再用最小代码说明pre-push 钩子 与 CI 职责边界的工作方式、判断依据、项目边界和常见误区。
为什么前端主分支要禁止 force push,从 Git 机制上说明它破坏了什么? 本文先给出可直接复述的结论,再用最小代码说明禁止 force push 保护分支 原因的工作方式、判断依据、项目边界和常见误区。
git pull 默认产生合并提交使前端仓库历史杂乱,如何用 pull --rebase 或配置保持线性? 本文先给出可直接复述的结论,再用最小代码说明git pull --rebase 线性历史 配置的工作方式、判断依据、项目边界和常见误区。
前端仓库误提交了大体积产物导致克隆缓慢,怎样从历史中彻底移除该文件? 本文先给出可直接复述的结论,再用最小代码说明git 历史删除大文件 filter-branch的工作方式、判断依据、项目边界和常见误区。
前端仓库主分支要求线性历史时,git rebase 与 git merge 该选哪个,代价是什么? 本文先给出可直接复述的结论,再用最小代码说明git rebase 与 merge 线性历史取舍的工作方式、判断依据、项目边界和常见误区。
误 git reset --hard 丢失了未推送的前端提交,如何用 git reflog 找回? 本文先给出可直接复述的结论,再用最小代码说明git reflog 找回丢失提交的工作方式、判断依据、项目边界和常见误区。
git reset 的 --soft、--mixed、--hard 分别把暂存区和工作区重置成什么状态,前端误提交时怎么选? 本文先给出可直接复述的结论,再用最小代码说明git reset 三种模式 区别的工作方式、判断依据、项目边界和常见误区。
已发布到远程的错误提交应该用 git revert 还是 git reset 撤销,判断标准是什么? 本文先给出可直接复述的结论,再用最小代码说明git revert 与 reset 撤销已发布提交的工作方式、判断依据、项目边界和常见误区。
回滚一次已合并的特性分支(merge commit)用 git revert -m 时,-m 参数的意义和后续再合并的坑是什么? 本文先给出可直接复述的结论,再用最小代码说明git revert -m 回滚合并提交 再次合并问题的工作方式、判断依据、项目边界和常见误区。
如何用 git describe 基于最近标签生成前端包的预发布版本号? 本文先给出可直接复述的结论,再用最小代码说明git describe 生成版本号 预发布的工作方式、判断依据、项目边界和常见误区。
客户端钩子可以被 --no-verify 绕过,如何用服务端钩子(pre-receive)强制前端仓库的提交规范? 本文先给出可直接复述的结论,再用最小代码说明pre-receive 服务端钩子 强制规范的工作方式、判断依据、项目边界和常见误区。
前端发版为什么建议用 GPG 签名 tag(git tag -s),它保证和不保证什么? 本文先给出可直接复述的结论,再用最小代码说明git tag -s GPG 签名 发版完整性的工作方式、判断依据、项目边界和常见误区。
git sparse-checkout 如何让开发者只检出 monorepo 中自己负责的前端子目录? 本文先给出可直接复述的结论,再用最小代码说明git sparse-checkout monorepo 部分检出的工作方式、判断依据、项目边界和常见误区。
前端仓库合并 PR 时用 squash merge 压缩提交,对 git bisect 和回溯定位有什么影响? 本文先给出可直接复述的结论,再用最小代码说明squash merge 压缩提交 对 bisect 的影响的工作方式、判断依据、项目边界和常见误区。