断言(req.assert)如何在nodejs中工作

Posted

技术标签:

【中文标题】断言(req.assert)如何在nodejs中工作【英文标题】:How does assert (req.assert) work in nodejs 【发布时间】:2014-06-18 09:22:10 【问题描述】:

我目前正在使用 node、express 和 angularjs 开发 MEAN 堆栈。我从 mean.io 下载了样板代码,并在探索代码时使用了调试器。

在以req和res为参数的控制器中,req.assert是如何工作的?

在文件 server/controllers/users.js 中

req.assert('username', 'Username cannot be more than 20 characters').len(1,20);

即使用户名为空或 null,也会添加到验证错误中。如何检查请求中的当前用户名值? req 的 assert 函数在哪里定义。

我来自 java 背景,有时很难找到函数代码,因为我不确定它在哪里定义以及它是如何原型化的。如何正确读取对象并浏览 javascript 中使用的函数?

【问题讨论】:

这是 JavaScript 最难的部分之一:一个函数可以在任何地方定义,而不仅仅是定义它的兄弟或包含对象的地方。 【参考方案1】:

它在 Express 的依赖 express-validator 中定义。在这里查看:https://github.com/ctavan/express-validator/blob/master/lib/express_validator.js

这取决于验证器: https://github.com/chriso/validator.js

【讨论】:

如果我有一个想要在特定字段上运行的自定义函数,语法是什么? @raju expressValidator.validator.extend(name, fn) 你是怎么注意到方法的来源的?我在代码中找不到assert方法的定义.... :/【参考方案2】:

接受的答案是指现在的Legacy API,因此链接断开。

查看Sanitization 和available sanitizing tools 的文档。您可以在其中制作自定义验证器。

【讨论】:

以上是关于断言(req.assert)如何在nodejs中工作的主要内容,如果未能解决你的问题,请参考以下文章

req.assert不是函数错误

工作线程如何在Nodejs中工作?

MFC 断言在全局析构函数中工作

如何让 Jest 自定义匹配器在打字稿中工作?

无法限制在 mongojs nodejs 中工作

Nodejs断言测试