【问题标题】:How does assert (req.assert) work in nodejs断言(req.assert)如何在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 最难的部分之一:一个函数可以在任何地方定义,而不仅仅是定义它的兄弟或包含对象的地方。

标签: javascript node.js angularjs express


【解决方案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,因此链接断开。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    相关资源
    最近更新 更多