我正在使用此代码并创建了一个微服务
const { json, send } = require('micro')
const { router, post } = require('microrouter')
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY)
console.log(process.env.STRIPE_SECRET_KEY)
module.exports = router(
post('/', async (req, res) => {
const data = await json(req)
try {
const { status } = await stripe.charges.create(data)
send(res, 200, { status })
} catch (err) {
send(res, 500, { message: err.message })
}
})
)
我可以使用 microrouter
在这里发出 post
请求,但如何验证有效负载正文以仅获取必需的字段。
如果有人知道任何模块来验证微服务发布负载,请提供帮助。
最佳答案
您可以使用 joi npm 和快速验证器
const Joi = require("joi");
const validate = require("express-validation");
const validationSchema = {
body: {
Id: Joi.string()
.guid()
.required(), // mandatory
FirstName: Joi.string().required(), // mandatory
LastName: Joi.string().required(), // mandatory
Email: Joi.string()
.email({ minDomainAtoms: 2 })
.required(), // mandatory
Password: Joi.string().required(), // mandatory
createdOn: Joi.date()
.timestamp()
.required(), // mandatory
}
};
路由器文件
module.exports = router(
post('/',validate(validationSchema), async (req, res) => {
const data = await json(req)
try {
const { status } = await stripe.charges.create(data)
send(res, 200, { status })
} catch (err) {
send(res, 500, { message: err.message })
}
})
)
关于javascript - 如何使用微路由器验证有效负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53929215/