当前位置: 首页 > news >正文

项目建设我先行凝心聚力促发展seo优化关键词分类

项目建设我先行凝心聚力促发展,seo优化关键词分类,怎么查看域名网站的容量到期,nas搭建wordpress博客网站需求 博客系统升级,本来是用 express 写的,最近发现 Egg 不错,正好学习升级一下。边学边写。 Ps:相同的功能,迭代的写法,由浅入深,做个记录。 开发 初始化 安装 node版本需要 >14.20.0…

需求

博客系统升级,本来是用 express 写的,最近发现 Egg 不错,正好学习升级一下。边学边写。

Ps:相同的功能,迭代的写法,由浅入深,做个记录。

开发

初始化

安装

node版本需要 >=14.20.0, LTS版本最低要求 8.x,npm版本 >=6.1.0

mkdir egg-blogs && cd egg-blogs
npm init egg --type=simple
npm install
npm run dev

默认启动的是 7001 端口。

创建目录结构

egg-blogs
├── package.json
├── app
|   ├── router.js
│   ├── controller
│   |   └── home.js
│   ├── service
│   |   └── user.js
│   ├── middleware
│   └── extend
│       ├── helper.js
├── config
|   ├── plugin.js
|   ├── config.default.js

安装&配置插件

npm i --save egg-mysql

在 config/plugin.js 中配置

/** @type Egg.EggPlugin */
module.exports = {// had enabled by egg// static: {//   enable: true,// }mysql: {enable: true,package: 'egg-mysql'}
};

在 config/config.default.js 中配置数据库信息

/* eslint valid-jsdoc: "off" *//*** @param {Egg.EggAppInfo} appInfo app info*/
module.exports = appInfo => {/*** built-in config* @type {Egg.EggAppConfig}**/const config = exports = {};// use for cookie sign key, should change to your own and keep securityconfig.keys = appInfo.name + '123';// add your middleware config hereconfig.middleware = [];// 关闭安全配置config.security = {xframe: {enable: false,},csrf: {enable: false,}};// 添加mysql配置config.mysql = {client: {host: '127.0.0.1',port: 3306,user: 'root',password: '12345678',database: 'blogs',charset: 'utf8'},app: true,agent: false,};// add your user config hereconst userConfig = {// myAppName: 'egg',};return {...config,...userConfig,};
};

开发逻辑

Controller

创建 app/controller/tags.js

const {Controller} = require('egg');class TagsController extends Controller {/** 获取标签列表 */async getTagList() {await this.ctx.service.tags.getTagList(this.ctx.request.query);}/** 新建标签 */async createTag() {await this.ctx.service.tags.createTag(this.ctx.request.body);}/** 更新标签 */async updateTag() {await this.ctx.service.tags.updateTag(this.ctx.request.body);}/** 删除标签 */async deleteTag() {await this.ctx.service.tags.deleteTag(this.ctx.request.query);}
}module.exports = TagsController;

Service

创建 app/service/tags.js

const {Service} = require('egg');class TagsService extends Service {async getTagList(params) {const {ctx, app} = this;const tagName = params?.tagName || '';const result = await app.mysql.query('SELECT * FROM tag WHERE tagName LIKE "%' + tagName + '%" ORDER BY create_time DESC')// 判断是否成功const isSuccess = result && Array.isArray(result);if (isSuccess) {ctx.state = 200;ctx.body = {code: 200,success: true,data: result,msg: '获取标签数据成功',show: false}} else {ctx.state = 200;ctx.body = {code: 500,success: false,msg: '获取标签数据失败',show: true}}}async createTag(params) {const {ctx, app} = this;const tagInfo = {id: ctx.helper.snowflakeId(),tagName: params.tagName,tagColor: params.tagColor,remark: params.remark,create_time: app.mysql.literals.now,update_time: app.mysql.literals.now}const result = await app.mysql.insert('tag', tagInfo);if (result.affectedRows === 1) {ctx.status = 200;ctx.body = {code: 200,success: true,data: tagInfo,msg: '创建标签成功',show: true}} else {ctx.status = 200;ctx.body = {code: 500,success: false,msg: '创建标签失败',show: true}}}async updateTag(params) {const {ctx, app} = this;const tagInfo = {id: params.id,tagName: params.tagName,tagColor: params.tagColor,remark: params.remark,update_time: app.mysql.literals.now}const result = await app.mysql.update('tag', tagInfo);const isSuccess = result && result.affectedRows === 1;if (isSuccess) {ctx.status = 200;ctx.body = {code: 200,success: true,data: tagInfo,msg: '修改标签成功',show: true}} else {ctx.status = 200;ctx.body = {code: 500,success: false,msg: '修改标签失败',show: true}}}async deleteTag(params) {const {ctx, app} = this;const ids = params.ids.split(',');const result = await app.mysql.beginDoomedTransactionScope(async (conn) => {for (let i = 0; i < ids.length; i++) {await app.mysql.delete('tag', {id: ids[i]});}return {success: true}}, ctx);if (result.success) {ctx.status = 200;ctx.body = {code: 200,success: true,msg: '删除标签成功',show: true}} else {ctx.status = 200;ctx.body = {code: 500,success: false,msg: '删除标签失败',show: true}}}
}module.exports = TagsService;

暴露路由

在 app/router.js 中暴露路由接口

/*** @param {Egg.Application} app - egg application*/
module.exports = app => {const {router, controller} = app;router.get('/', controller.home.index);// 操作标签router.get('/tags/getTagList', controller.tags.getTagList);router.post('/tags/createTag', controller.tags.createTag);router.put('/tags/updateTag', controller.tags.updateTag);router.delete('/tags/deleteTag', controller.tags.deleteTag);
};

总结

基础增删改查完成,但是当前状态最好不要部署在服务器上。

问题:

  1. 安全防护并未打开
  2. SQL防注入语法不对
  3. 直接操作数据库不规范、不标准
  4. 各类安全措施没有增加
  5. 各类数据校验没有增加
http://www.hkea.cn/news/912208/

相关文章:

  • 做公务员题的网站口红的推广软文
  • 福州网站建设 联系yanktcn 04上海百网优seo优化公司
  • 网站备案号如何获得网站建设营销推广
  • 物流网站开发公司西安 做网站
  • 商务信息网站怎么做网络视频营销策略有哪些
  • 社交做的最好的网站怎么开发一个网站
  • 教育品牌网站建设百度搜索推广和信息流推广
  • 虎门专业做网站对网络营销的认识有哪些
  • 投资理财培训网站建设抖音引流推广一个30元
  • 做景观设施的网站网络营销推广要求
  • 携程网站建设进度及实施过程网络营销的缺点及建议
  • 石家庄网站建设哪家专业中国联通腾讯
  • 能访问各种网站的浏览器百度一下网页搜索
  • 自己做网站花多少钱雅虎搜索
  • 哈尔滨招标信息网网站推广优化排名教程
  • 个人可以建论坛网站吗福清网络营销
  • 济南做网站优化价格百度推广网站一年多少钱
  • 做网上商城网站哪家好杭州seo靠谱
  • 做营销网站制作关键词优化课程
  • 网站移动终端建设口碑营销成功案例
  • 美国做试管婴儿 网站推广普通话宣传语
  • 网站备案信息查询系统软文发布平台媒体
  • 泊头哪给做网站的好制作网页的教程
  • 漳州建设银行网站首页在百度上打广告找谁
  • 网站免费建站k网络营销策划方案书
  • 网站建设类公网店推广的作用
  • 安平做网站除了百度指数还有哪些指数
  • 做网站公司 蓝纤科技知乎怎么申请关键词推广
  • 临沂免费做网站发表文章的平台有哪些
  • 网站推广的方式包括哪些广西网站建设制作