linux宝塔面板使用教程,Express 4

  • get,set自定义属性;
  1. socket.io
  • 基本事件触发、响应;服务器、客户端之间的实时通信;

  • 这个功能不要太强大。。还需继续挖掘;

  1. 模板引擎EJS(Embedded JavaScript),较简单,跟Jekyll的Liquid语法有一拼;

  2. 文件上传模块formidable

  • 文件上传;

  • 计算md5;

  1. path模块:path.join(); path.extname();

  2. 原生JavaScript的知识点巩固:

  • DOM操作;

  • Map操作;

  • Date转换;

  • 对象封装;

  • 正则表达式;

Features

  • 最后长这样子:

fileUpload

  • 作为应用Express 4.x与socket.io的小例子,实现文件的上传、下载;

关键是如何通过socket.io实现前后端的实时通信:在routes中使用socket触发文件上传进度事件。

  • 前端上传进度条:显示上传进度,用div宽度模拟,比较简陋;

  • 点击文件名可下载:相对上传,下载简单多了,通过response的download方法实现;

  • 文件去重:在上传过程中通过formidable提供的form.hash='md5'计算文件唯一标识,保证上传后的文件不重复;

  • 客户端校验:用户输入后,简单的文件名合法性校验;

Let’s code

  • Server Side : app.js

var express = require(‘express’);

var path = require(‘path’);

var app = express();

var port = 8888;

// view engine setup

app.set(‘views’, path.join(__dirname, ‘views’));

app.set(‘view engine’, ‘ejs’);

// include static files

app.use(express.static(path.join(__dirname, ‘public’)));

// upload destination setup

app.set(‘files’, path.join(__dirname, ‘/public/files’));

var index = require(‘./routes/index’);

// router

app.get(‘/upload’, index.list);

app.post(‘/upload’, index.submit(app.get(‘files’)));

app.get(‘/file/:id/download’, index.download(app.get(‘files’)));

var server = app.listen(port);

console.log("Listening on port: " + port);

var io = require(‘socket.io’)(server);

app.set(‘socketio’, io); // store a reference to the io object, can be passed to routes


  • Router - Form and File List: index.js

var formidable = require(‘formidable’);

var fs = require(‘fs’);

var path = require(‘path’);

var fileUploaded = new Map(); // store uploaded files

exports.list = function (req, res) {

res.render(‘index’, {

title: “File upload”,

fileUploaded: fileUploaded

});

};

  • Router - Submit and Upload: index.js

exports.submit = function (dir) {

return function (req, res, next) {

var form = new formidable.IncomingForm();

// high level formidable API

form.uploadDir = dir; // set destination

form.hash = ‘md5’; // use hash algorithm, we can get hash value by ‘file.hash’

form.parse(req, function (err, fields, files) {

// console.log(fields);

// console.log(files);

files.file.lastModifiedDate = files.file.lastModifiedDate.toLocaleString();

var f = {

newName: fields.name.length == 0

? files.file.name
fields.name + path.extname(files.file.name),

file: files.file

};

if (fileUploaded.has(files.file.hash)) {

form.emit(‘aborted’); // doesn’t work!?

console.log(‘aborted’);

} else {

fileUploaded.set(files.file.hash, f); // add to map

}

fs.rename(files.file.path, path.join(form.uploadDir, files.file.name), function (err) {

if (err) {

console.log(err);

}

res.redirect(‘/upload’);

console.log(‘Finished.’);

});

});

var io = req.app.get(‘socketio’); // get reference to socket.io

// listening progress event and send data to client

form.on(‘progress’, function (bytesReceived, bytesExpected) {

var percent = Math.floor(bytesReceived / bytesExpected * 100);

console.log(percent);

var progress = {

name: ‘progress’,

percent: percent

};

// emit event : progress

io.emit(‘progress’, progress); //notify all client, no session here

});

}

};

  • Router - Download :index.js

exports.download = function (dir) {

return function (req, res, next) {

var id = req.params.id;

var file = fileUploaded.get(id);

var targetPath = path.join(dir, file.file.name);

// second parameter can be used to specify file name

res.download(targetPath, file.newName);

};

};


  • Layout(only part of the file): index.ejs
Uploaded Files Name Size Type DateTime

<% fileUploaded.forEach(function(item, key, mapObj) { %>

<%=item.newName%> <%=item.file.size%> <%=item.file.type%> <%=item.file.lastModifiedDate%> **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
72faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />

最后

各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了

[外链图片转存中…(img-QEWQjboo-1713466948702)]

[外链图片转存中…(img-ROA35xSt-1713466948703)]

[外链图片转存中…(img-I1S8sZZT-1713466948705)]

[外链图片转存中…(img-hxtymuFd-1713466948707)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux宝塔面板是一款非常好用的服务器管理面板,它可以帮助用户快速搭建网站、数据库、邮件等服务。以下是Linux宝塔面板使用教程: 1. 安装Linux宝塔面板 首先需要在服务器上安装Linux宝塔面板,可以通过官方网站下载安装包,然后按照提示进行安装。 2. 登录Linux宝塔面板 安装完成后,可以通过浏览器访问服务器的IP地址或域名,进入Linux宝塔面板的登录页面。输入用户名和密码登录即可。 3. 添加网站 在Linux宝塔面板中添加网站非常简单,只需要点击左侧菜单栏的“网站”选项,然后点击“添加站点”按钮,填写网站相关信息即可。 4. 安装SSL证书 为了保证网站的安全性,需要为网站安装SSL证书。在Linux宝塔面板中,可以通过“SSL”选项来安装SSL证书。 5. 安装数据库 在Linux宝塔面板中,可以通过“数据库”选项来安装MySQL、MongoDB等数据库。 6. 安装邮件服务 在Linux宝塔面板中,可以通过“邮件”选项来安装邮件服务,如Postfix、Dovecot等。 7. 其他功能 除了以上功能,Linux宝塔面板还提供了很多其他的功能,如文件管理、FTP管理、计划任务等,用户可以根据自己的需求进行使用。 总之,Linux宝塔面板是一款非常实用的服务器管理工具,可以帮助用户快速搭建网站、数据库、邮件等服务,提高工作效率。 ### 回答2: Linux宝塔面板是一个非常实用的工具,专门为Linux服务器设计开发的一个开源面板。 它是一个非常强大的管理工具,能让你轻松管理你的服务器,包括网站管理,FTP管理,邮件管理和数据库管理等。 以下是Linux宝塔面板使用教程: 第一步:安装Linux宝塔面板 在使用宝塔面板之前,你需要在你的Linux服务器上进行安装。首先,打开你的终端窗口,输入以下命令将宝塔面板安装到你的服务器上: ``` wget -O bt-install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash bt-install.sh ``` 安装过程可能需要一些时间,所以请耐心等待。一旦安装完成,你将可以使用Linux宝塔面板来管理你的服务器。 第二步:登录Linux宝塔面板 安装完成后,你需要通过浏览器进入 Linux宝塔面板的登录页面。在地址栏输入你的服务器IP地址或域名,然后加上端口号8888(例如http://youripaddress:8888),进入登录页面。 在此处输入你的用户名和密码,即可登录进入Linux宝塔面板。 第三步:管理你的网站 在登录后,你可以在面板首页上看到一个简单的dashboard,可以让你快速了解服务器的大致运行状况。点击左侧边栏上面的网站管理,然后点击添加网站,即可开始管理你的站点。你可以轻松的创建、删除、备份和恢复你的网站。 第四步:管理FTP 如果需要使用FTP管理你的文件,你可以进入左侧边栏中的FTP管理页面。在这里你可以新建FTP账户,删除FTP账户,查看FTP日志和配置FTP访问规则。 第五步:管理邮件 Linux宝塔面板还可以让你管理你的邮件服务器。你可以在左侧菜单栏中点击邮件管理页面,快速的添加、删除、备份和恢复你的邮件账户。 第六步:管理数据库 在左边的导航栏中点击数据库页面,宝塔面板会列出你的服务器上所有的数据库。你可以轻松的管理这些数据库,包括创建、删除、备份和恢复。 总之,Linux宝塔面板是一个非常强大和实用的工具,可以让你更轻松地管理你的服务器。它适用于各种类型的Linux服务器,并且可以实现很多功能,包括网站管理、FTP管理、邮件管理和数据库管理等。如果你是一名使用Linux服务器的开发人员,或者是运维人员,那么你一定需要学会如何使用Linux宝塔面板。 ### 回答3: Linux宝塔面板是一款集服务器管理、网站建设、应用部署等功能于一体的管理工具。它简单易用、功能强大,而且还是开源免费的,所以被广大服务器和网站管理员所青睐。那么如何使用Linux宝塔面板呢?下面我将用不少于300字的篇幅,来介绍一下使用Linux宝塔面板的方法。 1. 安装Linux宝塔面板 在安装Linux宝塔面板之前,需要先选择合适的操作系统。宝塔支持Centos、Debian、Ubuntu等多种Linux操作系统,最好选择官方推荐的版本进行安装。安装方法分为在线安装和离线安装两种,网站上有详细的教程,这里就不再赘述。 2. 登录Linux宝塔面板 安装完成后,输入服务器的IP地址或域名,在浏览器中打开Linux宝塔面板页面。首次登录需要输入初始用户名和密码,登录之后就可以看到宝塔面板的管理界面。 3. 添加网站 在网站管理页面,可以看到添加网站的选项,输入网站名称和网站目录,然后点击创建按钮即可。如果需要开通SSL证书,可以点击SSL证书选项进行设置。 4. 安装应用程序 Linux宝塔面板支持一键安装各种应用程序,如WordPress、Discuz等流行的CMS系统,可以在Web软件管理界面找到这些应用程序,选择需要安装的程序,然后点击安装即可。安装完成后即可在网站中使用这些应用程序。 5. 部署应用程序 除了一键安装应用程序外,还可以使用宝塔面板的文件管理功能,手动部署应用程序。将应用程序压缩包上传到网站目录下,然后解压,就可以在网站中使用这些应用程序了。 6. 管理服务器 Linux宝塔面板还提供了服务器管理功能,可以查看服务器的CPU、内存、硬盘等信息,以及进行服务器监控、备份和安全设置等操作。 总之,Linux宝塔面板是一款非常实用的管理工具,可以大大提高服务器和网站的管理效率。通过以上步骤,我们已经对Linux宝塔面板的使用有了初步的了解,希望对大家有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值