koajs 项目实战(二)
项目 实战
2023-09-11 14:15:30 时间
此篇文章,接 koajs 项目实战(一)后写
(六)表单提交和参数接收
表单:
<form method="post" action="./users/zhuce">内容部分</form>
koa1:
users.js
// 注册页路由 router.post('/zhuce', function *(next) { // 获取参数 // let email = this.query['email']; // get 方式接收参数 let email = this.request.body['email']; // post 方式接收参数 // 输出 this.body = '收到email:' + email; });
koa2:
users.js
// 注册页路由 router.post('/zhuce', async function (ctx, next) { // 获取参数 // let email = ctx.query['email']; // get 方式获取参数 let email = ctx.request.body['email']; // post 方式获取参数 // 输出 ctx.body = '收到email:' + email; });
注:router.all() 既接收 get 方式传参,也接收 post 方式传参。
(七)mongoose 连接 mongodb
1.项目下安装 mongodb 和 mongoose
npm install mongodb --save-dev npm install mongoose --save-dev
2.router中
(1)创建model
UserModel.js
// 引入 mongoose var mongoose = require('mongoose'); // 创建 user模块 var User = mongoose.model('user', new mongoose.Schema({ email:String, pwd:String, nicheng:String, },{_id:true})); module.exports = User;
(2)在 users.js 中,将 表单数据 保存至 数据库。
koa1:
koa2:
users.js
var router = require('koa-router')(); // 1.导入 mongoose var mongoose = require('mongoose'); mongoose.Promise = global.Promise; // 2.初始化 // mongoose.Promise = require('bluebird'); // 疑似高效 // 3.导入 User let User = require('../models/UserModel.js'); // 4.连接数据库 var db = mongoose.connect('mongodb://localhost/eduline'); router.prefix('/users'); // 默认路由 router.get('/', function *(next) { this.body = 'this is a users response!'; }); // 登录页路由 router.get('/login', function *(next) { // 绑定login.ejs文件 yield this.render('login',{}); }); // 注册页路由 router.post('/zhuce', function *(next) { // // 获取参数 // // let email = this.query['email']; // get 方式接收参数 // let email = this.request.body['email']; // post 方式接收参数 // // 输出 // this.body = '收到email:' + email; // 5.实例化 user let user = new User(); // 因为user是关键词,当插入时,没有表会自动生成一个表,表名是users // 6.保存参数 user.email = this.request.body['email']; user.pwd = this.request.body['pwd']; user.nicheng = this.request.body['nicheng']; // 7.保存 yield user.save(); // 8.输出 自增涨id 自动生成组件 this.body = user._id; }); module.exports = router;
mongodb的基础操作:
1.开启 mongodb StartMongo 2.开启 端口(控制台) startManager 3.查看数据库 use eduline 4.查看数据表 show collections 5.查看表数据 db.users.find()
(八)例外处理
1.创建索引 设置唯一键
db.users.ensureIndex({"email":1},{"unique":true,"name":"emailuiq"}) db.users.ensureIndex({"nicheng":1},{"unique":true,"name":"nichenguiq"})
2.例外处理(异常处理)
users.js
// 5.实例化 user let user = new User(); // 因为user是关键词,当插入时,没有表会自动生成一个表,表名是users // 6.保存参数 user.email = this.request.body['email']; user.pwd = this.request.body['pwd']; user.nicheng = this.request.body['nicheng']; // 9.异常处理 try{ // 7.保存 yield user.save(); }catch(err){ console.log(err); if(err.toString().indexOf('emailuiq')>1){ this.body = 'email重复'; }else if(err.toString().indexOf('nichenguiq')>1){ this.body = '昵称重复'; } // 拦截 return; } // 8.输出 自增涨id 自动生成组件 this.body = user._id;
.
相关文章
- selenium+java项目实战---百度输入框
- C#【必备技能篇】Winform项目加密
- 全网最全postman接口测试教程和项目实战~从入门到精通!!!
- STM32MP157开发板Linux+Qt项目实战:智慧家庭
- 精通Python网络爬虫:核心技术、框架与项目实战.2.1 网络爬虫技能总览图
- [转]uniapp项目运行支付宝小程序,报错:xxx.json中没有申明component: true
- Java项目实战——瑞吉外卖Day05
- Java项目实战——瑞吉外卖Day02
- 新建SpringCloud电商后台项目
- 旅游项目实战开发
- 【Selenium项目实战】完成测试项目用例(用户登录案例):实现登录成功和失败测试
- [原创开源项目]EPUBBuilder一款在线的epub电子书编辑工具
- 《Python极客项目编程 》——1.3 代码
- 《Hadoop海量数据处理:技术详解与项目实战(第2版)》一第1章 绪论
- 【Python】Nuitka打包exe(32位)--防止源代码被反编译--实战PySide2项目--遇坑填坑(图文教程&超详细)
- Qt编写项目作品35-数据库综合应用组件
- 《Unity开发实战》——1.9节导入自定义包到项目中
- 《OpenStack实战指南》—— 1.9 OpenStack非核心项目介绍
- ThinkPHP6项目基操(15.实战部分 阿里云短信redis)
- 【项目】森林预言家——森林火灾预防系统
- Python与Django项目开发,使用inspect、signature、装饰器进行参数检查,QuerySet转List、Dict,以及数据操作方法的二次封装,解决业务和数据存储之间的耦合