如果你想搭建一個(gè)自己的網(wǎng)盤,但是又不想安裝繁瑣的mysql,那么mysql免安裝版便是一個(gè)不錯(cuò)的選擇。
首先,你需要下載mysql免安裝版。可以在官網(wǎng)上下載:https://dev.mysql.com/downloads/windows/installer/
解壓縮后,你需要在命令行窗口進(jìn)入bin文件夾,然后輸入以下命令來啟動mysql:
mysqld.exe --initialize-insecure mysqld.exe --console
第一行命令會初始化數(shù)據(jù)庫,在本地生成一個(gè)data文件夾;第二行命令會在控制臺中啟動mysql。
接下來,可以在瀏覽器中輸入localhost:3306來驗(yàn)證mysql是否已經(jīng)啟動。如果看到了一些奇怪的字符,說明成功了。
接下來,你需要創(chuàng)建一個(gè)數(shù)據(jù)庫、一個(gè)表格來保存上傳的文件,并給這個(gè)數(shù)據(jù)庫一個(gè)訪問的用戶名和密碼。可以使用以下命令:
mysql -u root -p create database mycloud; create table myfiles ( name varchar(100) not null, size int not null, data blob not null ); create user 'myuser'@'%' identified by 'mypassword'; grant all privileges on mycloud.* to 'myuser'@'%';
這些命令的意思是:使用root用戶進(jìn)入mysql;創(chuàng)建一個(gè)名為mycloud的數(shù)據(jù)庫;在myfiles表里創(chuàng)建三列,其中name列保存文件名,size列保存文件大小,data列保存文件數(shù)據(jù);創(chuàng)建一個(gè)用戶名為myuser,密碼為mypassword的用戶,并賦予對mycloud數(shù)據(jù)庫的全部權(quán)限。
現(xiàn)在,就可以使用這個(gè)數(shù)據(jù)庫來存儲你的文件了。你需要在你的網(wǎng)盤系統(tǒng)中集成以下代碼即可:
var con = mysql.createConnection({ host: "localhost", user: "myuser", password: "mypassword", database: "mycloud" }); app.post("/upload", function(req, res) { var file = req.files.file; var name = file.name; var size = file.size; var data = file.data; con.query("insert into myfiles values (?, ?, ?)", [name, size, data], function(err, result) { if (err) { res.send({code: 1, msg: err.message}); } else { res.send({code: 0, msg: "success"}); } }); }); app.get("/download", function(req, res) { var name = req.query.name; con.query("select * from myfiles where name=?", [name], function(err, result) { if (err || result.length == 0) { res.send("file not found"); } else { var data = result[0].data; res.setHeader("Content-Disposition", "attachment; filename=" + name); res.send(data); } }); });
這段代碼包括了上傳文件和下載文件的功能。上傳文件時(shí),將文件的名稱、大小和數(shù)據(jù)插入到mycloud數(shù)據(jù)庫的myfiles表中;下載文件時(shí),從myfiles表中取出指定的文件數(shù)據(jù)。
現(xiàn)在,你就可以在你的網(wǎng)盤系統(tǒng)中使用mysql免安裝版來存儲上傳的文件了。