? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection) >(*) Choose Vue version (*) Babel ( ) TypeScript ( ) Progressive Web App (PWA) Support ( ) Router ( ) Vuex ( ) CSS Pre-processors //CSS预处理器 (*) Linter / Formatter //格式化工具 ( ) Unit Testing //单元测试 ( ) E2E Testing //E2E测试
1 2 3
? Choose a version of Vue.js that you want to start the project with (Use arrow keys) > 2.x 3.x (Preview)
1
Use class-style component syntax?
是否需要使用class-style
是否使用TypeScript和Babel的形式编译 JSX
1
Use Babel alongside TypeScript (required for modern mode, auto-detected polyfills, transpiling JSX)? (Y/n)
回车后会让你选择增加lint的特性功能。
1 2 3
? Pick additional lint features: (Press <space> to select, <a> to toggle all, <i> to invert selection) >(*) Lint on save //保存的时候进行Lint ( ) Lint and fix on commit //需要帮你进行fix(修理),这项我们不进行选择
选择这些配置文件时单独存放,还是直接存放在package.json文件里
1
Where do you prefer placing config for Babel, ESLint, etc.? In dedicated config files
=> SELECT `author`, `title` FROM `posts` WHERE `status` = 'draft' AND `author` IN('author1','author2') ORDER BY `created_at` DESC, `id` DESC LIMIT 0, 10;
// 修改数据,将会根据主键 ID 查找,并更新 const row = { id: 123, name: 'fengmk2', otherField: 'other field value', // any other fields u want to update modifiedAt: this.app.mysql.literals.now, // `now()` on db server }; const result = awaitthis.app.mysql.update('posts', row); // 更新 posts 表中的记录
=> UPDATE `posts` SET `name` = 'fengmk2', `modifiedAt` = NOW() WHERE id = 123 ;
// 如果主键是自定义的 ID 名称,如 custom_id,则需要在 `where` 里面配置 const row = { name: 'fengmk2', otherField: 'other field value', // any other fields u want to update modifiedAt: this.app.mysql.literals.now, // `now()` on db server };
const result = awaitthis.app.mysql.delete('posts', { author: 'fengmk2', });
=> DELETE FROM `posts` WHERE `author` = 'fengmk2';
直接执行 sql 语句
插件本身也支持拼接与直接执行 sql 语句。使用 query 可以执行合法的 sql 语句。
注意!!我们极其不建议开发者拼接 sql 语句,这样很容易引起 sql 注入!!
如果必须要自己拼接 sql 语句,请使用 mysql.escape 方法。
参考 preventing-sql-injection-in-node-js
1 2 3 4
const postId = 1; const results = awaitthis.app.mysql.query('update posts set hits = (hits + ?) where id = ?', [1, postId]);
=> update posts set hits = (hits + 1) where id = 1;
使用事务
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等。这时候使用事务处理可以方便管理这一组操作。 一个事务将一组连续的数据库操作,放在一个单一的工作单元来执行。该组内的每个单独的操作是成功,事务才能成功。如果事务中的任何操作失败,则整个事务将失败。
mysql -uroot //登录数据库 mysql.exe -h127.0.0.1 -p3306 -uroot -p mysql -uroot<拖拽脚本 // insert into 表名 values(.....); delete from 表名 where 列名=值; update 表名 set 列名=修改的值,....where 列名=值; select * from 表名;