【发布时间】:2019-11-06 02:34:40
【问题描述】:
我正在尝试安装和使用express-validator 包。我已经安装了包版本(6.0.0),然后在我的 server.js 文件中的代码是:
const bodyParser = require('body-parser')
const expressValidator = require('express-validator')
const express = require('express')
const nunjucks = require('nunjucks')
const sessionInMemory = require('express-session')
const cookieParser = require('cookie-parser')
然后我在下面的几行中输入了以下内容:
const app = express()
const documentationApp = express()
app.use(expressValidator())
当服务器重新加载更改(使用 nodemon)时,应用程序崩溃并显示:
TypeError: expressValidator 不是函数
我的 server.js 文件中还有其他一些代码,但我已经删除了大部分我认为不相关的代码。
expressValidator 的控制台日志:
{ oneOf: [Function: oneOf],
buildSanitizeFunction: [Function: buildSanitizeFunction],
sanitize: [Function],
sanitizeBody: [Function],
sanitizeCookie: [Function],
sanitizeParam: [Function],
sanitizeQuery: [Function],
buildCheckFunction: [Function: buildCheckFunction],
check: [Function],
body: [Function],
cookie: [Function],
header: [Function],
param: [Function],
query: [Function],
checkSchema: [Function: checkSchema],
matchedData: [Function: matchedData],
validationResult: { [Function] withDefaults: [Function: withDefaults] },
Result: [Function: Result] }
routes.js 文件的代码:
router.get('/email-adress', function (req, res) {
res.render('email-adress', { success: req.session.success, errors: req.session.errors })
req.session.errors = null
})
router.post('/finished', function (req, res) {
let email = req.body.email
req.checkBody('email', 'Email required').isEmail()
var errors = req.validationErrors()
if (errors) {
req.session.errors = errors
req.session.success = false
res.redirect('/email-adress')
} else {
req.session.success = true
res.redirect('/finished')
}
})
【问题讨论】:
-
控制台记录你的 expressValidator 并显示结果
-
检查文档express-validator.github.io/docs/6.0.0 它与您在这里所做的不同,它需要 const { check, validationResult } = require('express-validator');然后在路由中将检查作为中间件传递 [ check('username').isEmail(), check('password').isLength({ min: 5 }) ]
-
expressValidator 是一个对象而不是一个函数。 ;)
-
@ArpitPandey 我可以看到那里的区别,我刚刚添加了 routes.js 文件的代码,它检查电子邮件输入以确保它是有效的电子邮件地址。我不确定如何为版本 6 重写该代码?
标签: javascript node.js express