使用之前
-
官方文档
joi.dev -
下载
npm install joi
-
导入
const Joi = require('joi')
使用实例
const Joi = require('joi')
const schemaRegister = Joi.object({
email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: ['com', 'net'] } }),
nickname: Joi.string().alphanum().min(3).max(30).required(),
password: Joi.string().alphanum().min(3).max(30).required(),
})
console.log('error:' , schemaRegister.validate(req.body).error&&schemaRegister.validate(req.body).error.message)
demo代码
app.js
var express = require('express')
var bodyParser = require('body-parser')
var router = require('./router')
var cors = require('cors')
var app = express()
// cors中间件解决跨域问题
app.use(cors())
// 配置body-parser (post请求体)
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(router)
app.listen(3000 , function() {
console.log('Running...')
})
router.js
const express = require('express')
const Joi = require('joi')
var router = express.Router()
// 处理注册请求
router.post('/register' , function(req , res , next){
// 1. 获取数据
// 2. 操作数据库
// 3. 发送响应
var body = req.body
// 首先判断数据的格式
console.log('error:' , schemaRegister.validate(req.body).error&&schemaRegister.validate(req.body).error.message)
if(schemaRegister.validate(req.body).error){
// 格式有误
return res.status(200).json({
err_code:2,
message:schemaRegister.validate(req.body).error.message
})
}
//其他的业务代码...
})
module.exports = router