【备战春招】第8天 eggjs
2023/2/16 4:24:04
本文主要是介绍【备战春招】第8天 eggjs,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:Node.js工程师养成计划
课程章节: 第九章
课程讲师:北瑶
课程内容
在 model 里面建立一个 user.js 用于链接mongoose
module.exports = app => { const mongoose = app.mongoose const Schema = mongoose.Schema const UserSchema = new Schema({ username: { type: String, required: true }, email: { type: String, required: true }, password: { type: String, required: true, select:false }, phone: { type: String, required: true }, image: { type: String, default: null }, cover:{ type: String, default: null }, channeldes:{ type: String, default: null }, subscribeCount:{ type:Number, default:0 } }) return mongoose.model('User', UserSchema) }
连接mongodb 并给 password 设置了 查询时不显示
select:false
新建 controller 文件夹
'use strict'; const { Controller } = require('egg'); class HomeController extends Controller { async index() { var userinfo = await this.app.model.User.find() this.ctx.body = userinfo } } module.exports = HomeController;
this.app.model.User 会自动找到 app文件下得 model 下的 user.js
关于数据校验
npm i egg-validate
config 文件下 plugin。js
module.exports.validate = { enable: true, package: 'egg-validate', };
设置为开启状态
然后创建 middleware - error_handler.js
module.exports = () => { return async function errorHandler(ctx, next) { try { await next(); } catch (err) { // 所有的异常都在 app 上触发一个 error 事件,框架会记录一条错误日志 ctx.app.emit('error', err, ctx); const status = err.status || 500; // 生产环境时 500 错误的详细错误内容不返回给客户端,因为可能包含敏感信息 const error = status === 500 && ctx.app.config.env === 'prod' ? 'Internal Server Error' : err.message; // 从 error 对象上读出各个属性,设置到响应中 ctx.body = { error }; if (status === 422) { ctx.body.detail = err.errors; } ctx.status = status; } }; };
设置全局得错误处理
需要再 config.default.js 引入
config.middleware = ['errorHandler'];
const Controller = require('egg').Controller class UserController extends Controller { async create() { const { ctx } = this ctx.validate({ username: { type: 'string' }, email: { type: 'string' }, password: { type: 'string' }, }) ctx.body = 'user' } } module.exports = UserController
此时就能得出校验结果
这篇关于【备战春招】第8天 eggjs的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23【JS逆向百例】爱疯官网登录逆向分析
- 2024-12-21Vue3教程:新手入门到实践应用
- 2024-12-21VueRouter4教程:从入门到实践
- 2024-12-20Vue3项目实战:从入门到上手
- 2024-12-20Vue3项目实战:新手入门教程
- 2024-12-20VueRouter4项目实战:新手入门教程
- 2024-12-20如何实现JDBC和jsp的关系?-icode9专业技术文章分享
- 2024-12-20Vue项目中实现TagsView标签栏导航的简单教程
- 2024-12-20Vue3入门教程:从零开始搭建你的第一个Vue3项目
- 2024-12-20从零开始学习vueRouter4:基础教程