一篇文章我給大家說明了如何從零開始搭建一個node的服務(wù)端框架,我們用到了Egg框架。Egg框架我不再過多介紹,如果有小伙伴想了解,可以回去看我以前寫的文章,會有相關(guān)的介紹。這次我將在上次搭建的框架上進行延伸,講一下如果用Egg框架連接數(shù)據(jù)庫,并且實現(xiàn)對數(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ù)。我們在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í)
本教程主要講解如何對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中的用戶管理
請使用帶有-F選項的awk命令。在這里,我們查看/etc/passwd文件,并在print 和awk的幫助下只打印第一個字段。
awk -F':' '{ print }' /etc/passwd
列出Linux中的所有用戶
您可以獲得任何用戶名的id。每個用戶都有一個分配給它的id,通過這個id來識別用戶。默認情況下,這個id也是用戶的組id。
語法:
id username
例如,查看root的id
id root
查看Linux系統(tǒng)所有用戶
useradd命令向系統(tǒng)添加一個新用戶。用戶根據(jù)所屬的類別自動獲得ID。用戶的用戶名將由我們在命令中提供。
語法:
sudo useradd username
例子:添加用戶geeks
sudo useradd geeks
在使用此命令后,我們必須為用戶輸入新密碼,然后將密碼更新為新密碼。
使用passwd命令為用戶分配密碼
語法:
passwd username
例如:
passwd geeks
cat /etc/passwd
這個命令打印用戶配置文件的信息。
username : x : user id : user group id : : /home/username : /bin/bash
語法:
usermod -u new_id username
例如:修改用戶zcwyou的ID為1004
usermod -u 1004 zcwyou
此命令可以更改用戶的用戶ID。具有給定用戶名的用戶將使用命令中給定的新ID進行分配,舊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
您可以使用usermod命令修改用戶登錄名。下面的命令用于更改用戶的登錄名。用戶的舊登錄名更改為新設(shè)置的登錄名。
修改登錄用戶名
語法:
sudo usermod -l new_login_name old_login_name
使用案例:把a用戶登錄名修改為b。
sudo usermod -c b a
下面的命令更改給定用戶名的用戶的主目錄,并將指定用戶的主目錄設(shè)置為新設(shè)置的目錄。
語法:
usermod -d new_home_directory_path username
案例,把用戶test的主目錄設(shè)置為new_home_directory
usermod -d new_home_directory test
下面的命令用于刪除指定用戶。確保用戶不是組的一部分。如果用戶是組的一部分,那么它不會被直接刪除,因此我們必須先將他從組中刪除,然后才能刪除它。
語法:
userdel -r username
使用案例,刪除用戶new_geeks
sudo userdel -r new_geeks
通過本文,我們應(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ù)庫名稱自然就是tfums了,這個沒有什么可說的了。
CREATE DATABASE `tfums` DEFAULT CHARSET `utf8`;
數(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是相同的、一對一對的。
今天童鞋們跟著福哥完成了用戶管理系統(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
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。