You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node API路由注册MongoDB用户时无返回状态码该如何排查?

问题根因

代码成功逻辑分支仅调用了res.status(200)方法,该方法仅用于设置HTTP响应状态码,不会主动向客户端发送响应内容、结束请求流程,因此请求会一直处于待响应状态,表现为无返回内容。

修复方案

在res.status(200)后补充send()或json()方法,主动发送响应内容结束请求,以下是修改后的可用代码:

const express = require("express");
const User = require("../models/User");
const router = express.Router()

router.post("/users",async (req, res) => {
    
    // 创建用户实例
    const user= new User({
        username: req.body.username,
        password: req.body.password
    });

    // 向数据库保存用户
    user
        .save(user)
        .then(data => {
            // 补充json方法发送响应内容,可根据业务需求自定义返回字段
            res.status(200).json({
                message: "用户创建成功",
                userData: data
            });
        })
        .catch(err => {
            res.status(500).send({
                message:
                    err.message || "创建用户时发生未知错误。"
            });
        });
})
module.exports = router
可选优化

你当前的路由已经声明了async关键字,可以改用更简洁的async/await写法,避免Promise回调嵌套:

router.post("/users", async (req, res) => {
  try {
    const user = new User({
      username: req.body.username,
      password: req.body.password
    });
    const savedUser = await user.save();
    res.status(200).json({
      message: "用户创建成功",
      userData: savedUser
    });
  } catch (err) {
    res.status(500).send({
      message: err.message || "创建用户时发生未知错误。"
    });
  }
})
安全提示

用户密码不要明文存入数据库,建议使用bcrypt等加密工具对密码做哈希处理后再存储,避免数据泄露导致的安全风险。

内容的提问来源于stack exchange,提问作者user8716887

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:06:03