断言(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中工作的主要内容,如果未能解决你的问题,请参考以下文章