整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          JS寫的服務(wù)端,如何連接Mysql數(shù)據(jù)庫,實現(xiàn)增刪查改功能

          一篇文章我給大家說明了如何從零開始搭建一個node的服務(wù)端框架,我們用到了Egg框架。Egg框架我不再過多介紹,如果有小伙伴想了解,可以回去看我以前寫的文章,會有相關(guān)的介紹。這次我將在上次搭建的框架上進行延伸,講一下如果用Egg框架連接數(shù)據(jù)庫,并且實現(xiàn)對數(shù)據(jù)的增刪查改。接下來我們直接進入主題。

          安裝數(shù)據(jù)庫插件

          我本次選用的數(shù)據(jù)庫是MySQL。所以我們安裝Egg官方的數(shù)據(jù)庫插件即可,首先我們安裝插件 egg-mysql我們在項目根目錄打開命令提示符,輸入命令行:npm i --save egg-mysql 。回車等待插件下載安裝完成。

          npm i --save egg-mysql

          配置插件

          命令行下載安裝插件完成后,我們下一步的工作就是在項目中開啟并配置egg-mysql插件。具體操作如下:

          首先我們要在項目中開啟數(shù)據(jù)庫。找到項目中的/config/plugin.js文件我們需要在里面添加幾行代碼,如下所示。

          //開啟數(shù)據(jù)庫插件
            mysql : {
              enable: true,
              package: 'egg-mysql',
            }

          然后我們還要在 config/config.default.js 中配置各個環(huán)境的數(shù)據(jù)庫連接信息。具體配置如下。

          //添加數(shù)據(jù)庫連接信息
            config.mysql = {
              // 單數(shù)據(jù)庫信息配置
              client: {
                // host
                host: 'localhost',
                // 端口號
                port: '3306',
                // 用戶名
                user: 'root',
                // 密碼
                password: '123456',
                // 數(shù)據(jù)庫名
                database: 'testdb',
              },
              // 是否加載到 app 上,默認開啟
              app: true,
              // 是否加載到 agent 上,默認關(guān)閉
              agent: false,
            };

          到此步驟我們的數(shù)據(jù)庫插件已經(jīng)安裝完成并且配置好了。那我們怎么實現(xiàn)數(shù)據(jù)的增刪查改呢?大家請繼續(xù)往下看。

          數(shù)據(jù)操作-新增用戶

          首先我們看一下怎么新增數(shù)據(jù)。我們在mysql的testdb實例中新建一個user空表。如下圖所示。

          我們的egg框架也遵循MVC的架構(gòu)所以我們一般會在service層里面寫我們邏輯處理的代碼,而controller層則是獲取前端數(shù)據(jù),回傳數(shù)據(jù)的控制層。所以我們操作數(shù)據(jù)庫的代碼是寫在service文件夾里面的。

          我們在app/service文件夾里面新建一個user.js文件。在里面寫個新增用戶的方法,該方法就是把數(shù)據(jù)存到數(shù)據(jù)庫中。具體代碼如下。

          const Service = require('egg').Service;
          
          class UserService extends Service {
          
            //新增用戶data是有controller層傳遞過來的數(shù)據(jù)記錄。
            async addUser(data) {
          
              const {ctx, app} = this;
              let result = {};
              try {
                data.id = 0;//定義id=0,因為數(shù)據(jù)庫已經(jīng)設(shè)置id為主鍵,并且自增。所以只需要賦值0即可。
                // 在 user 表中,插入前端提交上來的數(shù)據(jù)記錄
                const info = await app.mysql.insert('user', data); 
            
                //插入成功后。
                if(info.affectedRows === 1){
                  //給前端返回一個Json的對象
                  result = {
                    state: 0, //自定義的狀態(tài)碼
                    msg: "添加成功", //返回的消息
                    data: info.insertId, //新增的記錄的id
                  }
                }
          
              } catch (err) {
                //插入數(shù)據(jù)失敗的返回結(jié)果
                result = {
                  state: 1, 
                  msg: err,
                  data: null,
                }
              }
              
              return result
            }
          };
          module.exports = UserService;

          然后我們在app/controller文件夾里新建一個user.js文件。在這里我們需要獲取前端提交上來的數(shù)據(jù),并且將數(shù)據(jù)處理的結(jié)果返回給前端。具體代碼如下。

          'use strict';
          
          const Controller = require('egg').Controller;
          /**
           * @Controller 用戶管理
           */
          class UserController extends Controller {
          
            /**
            * @summary 新增用戶
            * @router post /user/add
            * @request body userAddRequest 
            * @response 200 
            */
            async addUser() {
              const { ctx } = this;
          
              //通過ctx.request.body的方式,可以獲取到前端post方式提交上來的數(shù)據(jù)
              const data = ctx.request.body;
          
              //調(diào)用service層的addUser方法。并且返回相應(yīng)的結(jié)果
              const userInfo = await ctx.service.user.addUser(data);
              
              //向前端接口響應(yīng)數(shù)據(jù)。
              ctx.body = userInfo;
            }
          
          }
          
          module.exports = UserController;

          最后我們定義一個路由,讓前端請求訪問此路由。框架會監(jiān)聽路由是否被訪問,如果被訪問了則會調(diào)用我們定義在controller層的新增用戶的方法。我們在app/router.js文件中添加如下代碼,即可完成路由的定義。

          //新增用戶路由
            router.post('/user/add', controller.user.addUser);

          完成這步驟后,我們一個新增用戶的功能就已經(jīng)完成了。接下里我們就測試一下它的實際效果。我們運行命令:npm run dev。啟動項目,然后打開網(wǎng)頁http://127.0.0.1:7001,可以直接在swagger-ui.html頁面中進行測試。結(jié)果如下圖所示。

          經(jīng)過測試,數(shù)據(jù)已經(jīng)添加完成。所以數(shù)據(jù)庫連接也是正常的。

          本次分享暫時先告一段落。請各位小伙伴抬起你們發(fā)財?shù)男∈郑c個贊唄。下次我將會進行和大家分享對數(shù)據(jù)查改刪的方法。關(guān)注我!!!更多精彩分享不迷路。


          關(guān)注本頭條號,每天堅持更新原創(chuàng)干貨技術(shù)文章。

          如需學(xué)習(xí)視頻,請在微信搜索公眾號“智傳網(wǎng)優(yōu)”直接開始自助視頻學(xué)習(xí)

          1. 前言

          本教程主要講解如何對Linux用戶進行管理。

          用戶是Linux操作系統(tǒng)中的一個重要組成部分,它可以操作文件并執(zhí)行其他一些操作。為每個用戶分配一個ID,該ID對于操作系統(tǒng)中的每個用戶都是惟一的。在這篇文章中,我們將了解用戶和用于獲取用戶信息的命令。安裝操作系統(tǒng)之后,將ID 0分配給root用戶,將ID 1至999分配給系統(tǒng)用戶,因此本地用戶的ID從1000開始。

          在Linux系統(tǒng)中,我們可以創(chuàng)建60,000個用戶。現(xiàn)在我們將討論在Linux中管理用戶的重要命令。

          Linux中的用戶管理


          2. 列出Linux中的所有用戶

          請使用帶有-F選項的awk命令。在這里,我們查看/etc/passwd文件,并在print 和awk的幫助下只打印第一個字段。

          awk -F':' '{ print }' /etc/passwd

          列出Linux中的所有用戶


          3. 使用`id`命令

          您可以獲得任何用戶名的id。每個用戶都有一個分配給它的id,通過這個id來識別用戶。默認情況下,這個id也是用戶的組id。

          語法:

          id username

          例如,查看root的id

          id root

          查看Linux系統(tǒng)所有用戶


          4. 添加用戶的命令

          useradd命令向系統(tǒng)添加一個新用戶。用戶根據(jù)所屬的類別自動獲得ID。用戶的用戶名將由我們在命令中提供。

          語法:

          sudo useradd username

          例子:添加用戶geeks

          sudo useradd geeks

          5. 使用passwd命令為用戶分配密碼。

          在使用此命令后,我們必須為用戶輸入新密碼,然后將密碼更新為新密碼。

          使用passwd命令為用戶分配密碼


          語法:

          passwd username

          例如:

          passwd geeks

          6. 訪問系統(tǒng)用戶配置文件。

          cat /etc/passwd

          這個命令打印用戶配置文件的信息。

          username : x : user id : user group id : : /home/username : /bin/bash

          7. 修改用戶ID

          語法:

          usermod  -u new_id username

          例如:修改用戶zcwyou的ID為1004

          usermod  -u 1004 zcwyou

          此命令可以更改用戶的用戶ID。具有給定用戶名的用戶將使用命令中給定的新ID進行分配,舊ID將被刪除。

          8. 修改用戶組ID

          語法:

          usermod -g  new_group_id username

          這個命令可以更改用戶的組ID,因此它甚至可以用來將用戶移動到一個已經(jīng)存在的組。它將更改給定用戶名的用戶的組ID,并將組ID設(shè)置為給定的new_group_id。

          例如:修改用戶zcwyou的組ID為1004,修改的前提條件是,已經(jīng)存在1004這個組。

          usermod -g  1004 zcwyou

          9. 修改登錄用戶名

          您可以使用usermod命令修改用戶登錄名。下面的命令用于更改用戶的登錄名。用戶的舊登錄名更改為新設(shè)置的登錄名。

          修改登錄用戶名


          語法:

          sudo usermod -l new_login_name old_login_name

          使用案例:把a用戶登錄名修改為b。

          sudo usermod -c b a

          10. 更改主目錄的命令。

          下面的命令更改給定用戶名的用戶的主目錄,并將指定用戶的主目錄設(shè)置為新設(shè)置的目錄。

          語法:

          usermod -d new_home_directory_path username

          案例,把用戶test的主目錄設(shè)置為new_home_directory

          usermod -d new_home_directory test

          11. 刪除用戶名

          下面的命令用于刪除指定用戶。確保用戶不是組的一部分。如果用戶是組的一部分,那么它不會被直接刪除,因此我們必須先將他從組中刪除,然后才能刪除它。

          語法:

          userdel -r username

          使用案例,刪除用戶new_geeks

          sudo userdel -r new_geeks

          12. 結(jié)論

          通過本文,我們應(yīng)該對Linux系統(tǒng)中的用戶管理有了進一步的了解了,如果你有任何疑問,請留言。

          本文已同步至博客站,尊重原創(chuàng),轉(zhuǎn)載時請在正文中附帶以下鏈接:https://www.linuxrumen.com/cyml/1727.html

          點擊了解更多,快速查看更多的技術(shù)文章列表。

          介紹

          昨天我們已經(jīng)對TFUMS系統(tǒng)的需求進行了分析,今天福哥帶著大家把TFUMS的數(shù)據(jù)表設(shè)計一下。根據(jù)我們的需求分析結(jié)果可以知道,TFUMS只有一個模塊就是用戶模塊,該模塊只有一個模型就是用戶模型。而且用戶模型的屬性和功能已經(jīng)設(shè)計好了,現(xiàn)在我們就根據(jù)這些設(shè)計好的內(nèi)容進行數(shù)據(jù)庫的設(shè)計了。

          數(shù)據(jù)庫

          數(shù)據(jù)庫名稱自然就是tfums了,這個沒有什么可說的了。

          CREATE DATABASE `tfums` DEFAULT CHARSET `utf8`;

          數(shù)據(jù)表

          數(shù)據(jù)表這里福哥打算建立兩個數(shù)據(jù)表一個是User的基礎(chǔ)數(shù)據(jù)表,另外一個是User的個人資料表,這兩個表之間是主附關(guān)系。

          用戶基礎(chǔ)表

          用戶基礎(chǔ)表名稱是user,這個表里保存用戶的基本數(shù)據(jù),包括用戶ID、用戶密碼等等。

          CREATE TABLE `user`(
          userID int NOT NULL AUTO_INCREMENT,
          passwd char(32) NOT NULL,
          createDT datetime NOT NULL,
          lastLoginDT datetime NULL,
          userFlag tinyint NOT NULL,
          userState tinyint NOT NULL,
          PRIMARY KEY(userID)
          );

          可以看到user表的userID是主鍵且會自動增加,這里面的userID將成為TFUMS的注冊用戶的唯一ID標(biāo)識。

          用戶個人信息表

          用戶個人信息表的名稱是user_profile,這個表從命名上就可以看出是user表的附屬表,它用來保存用戶的個人信息,包括用戶昵稱、用戶頭像等等。

          CREATE TABLE `user_profile`(
          userID int NOT NULL,
          nickName varchar(45) NULL,
          iconFileName varchar(45) NULL,
          PRIMARY KEY(userID)
          );

          可以看到我們在user_profile表里也建立了userID字段,也就是說我們在想這兩個表寫入數(shù)據(jù)的時候要保證user.userID和user_profile.userID是相同的、一對一對的。

          總結(jié)

          今天童鞋們跟著福哥完成了用戶管理系統(tǒng)TFUMS的數(shù)據(jù)庫和數(shù)據(jù)表的設(shè)計,大家要知道數(shù)據(jù)表的改動是一個非常嚴肅的事情。雖然福哥在建立數(shù)據(jù)表的時候輕車熟路就建好了,不過童鞋們在建立數(shù)據(jù)表的時候,調(diào)整數(shù)據(jù)表的字段的時候一定要考慮再三之后再動手。

          下一課我們就開始開發(fā)TFMUS的User模型的代碼了,大家要跟著來哦~~


          https://m.tongfu.net/home/35/blog/512889.html


          主站蜘蛛池模板: 91视频一区二区| 奇米精品一区二区三区在线观看| 亚州国产AV一区二区三区伊在| 精品国产一区二区三区在线观看| 无码av免费一区二区三区| 日本在线视频一区二区三区| 免费无码VA一区二区三区| 久久精品无码一区二区三区日韩| 交换国产精品视频一区| 精品国产一区二区三区不卡| 日韩一区二区在线观看视频| 日韩精品免费一区二区三区| 日本一道高清一区二区三区| 久久精品国产一区二区三区不卡| 国产无吗一区二区三区在线欢| 亚洲无线码在线一区观看| 国产一区二区三精品久久久无广告| 国产在线精品一区二区| 日本一区二区三区中文字幕| 一区二区三区四区无限乱码| 国产成人高清亚洲一区久久| 日韩一区二区三区视频| 亚洲中文字幕丝袜制服一区| 亚洲一区二区三区在线视频| 国产在线观看一区精品 | 久久久久人妻精品一区 | 全国精品一区二区在线观看| 在线观看一区二区三区视频| 成人在线观看一区| 成人区精品人妻一区二区不卡| 中文字幕亚洲一区二区va在线| 人体内射精一区二区三区| 亚洲国产精品一区二区第一页 | 3d动漫精品啪啪一区二区中| 无码日韩人妻AV一区免费l| 麻豆视频一区二区三区| 一区二区三区美女视频| 久久久无码精品人妻一区| 无码一区二区三区在线观看| 偷拍精品视频一区二区三区| 中文激情在线一区二区|