Express.js应用程序端点上的Mongoose.js模型验证错误

时间:2018-09-08 17:48:17

标签: node.js express mongoose

我正在进行问题测试以驱动我正在构建的API的端点。端点用于一个人注册为新用户/ users / register。当我用以下请求正文点击路线时 {  “ name”:“ john”,  “电子邮件”:“ john@example.com”  “ password”:“ Password1234!” }

我得到404,因为引发了来自用户架构的验证错误。该错误指出passwordHash路径是必需的。设置架构的方式是,我有一个虚拟密码字段,并对该字段进行哈希处理并将其保存到必需的passwordHash字段中。这是一个快乐的路径测试,不应失败。涵盖此功能的我的模型/架构单元测试和控制器测试通过。但是,当我测试路由时会失败。相关文件粘贴在下面。如果您想查看该应用程序并运行它,则可以在仓库https://github.com/Euklidian-Space/voter-node/tree/user_routes中进行操作。运行npm安装后,请运行npm start启动服务器。您还需要运行mongodb。

这是路线定义

let updates = {}
updates[`/posts/${group}/${post}/lastComments`] = {...};
updates[`/posts/${group}/${post}`] = { ... };
firebase.database().ref().update(updates);

这是用户控制器中的创建动作

const router = require("express").Router();
const UserController = require("../controllers/user_controller");

router.get("/:id", UserController.verifyToken, UserController.show);
router.post("/register", UserController.create);

module.exports = router;

这是用户架构

exports.create = async (req, res, next) => {
  const [err, user] = await to(createUser(req.body)); 
  if (err) return next(err);

  const respObj = {
    user,
    token: token(user.id, JWT_KEY, jwt)
  };

  res.status(200).send(respObj);
  return Promise.resolve(respObj);
};

0 个答案:

没有答案