兩種辦法
ctrl+backspace;
如果有 bash 就用 /bin/bash
progress-stream
獲取上傳進度如果只是想在服務端獲取上傳進度,可以試下如下代碼。注意,這個模塊跟express、multer并不是強綁定關系,可以獨立使用。
var fs = require('fs');
var express = require('express');
var multer = require('multer');
var progressStream = require('progress-stream');
var app = express();
var upload = multer({ dest: 'upload/' });
app.post('/upload', function (req, res, next) {
// 創(chuàng)建progress stream的實例
var progress = progressStream({length: '0'}); // 注意這里 length 設置為 '0'
req.pipe(progress);
progress.headers = req.headers;
// 獲取上傳文件的真實長度(針對 multipart)
progress.on('length', function nowIKnowMyLength (actualLength) {
console.log('actualLength: %s', actualLength);
progress.setLength(actualLength);
});
// 獲取上傳進度
progress.on('progress', function (obj) {
console.log('progress: %s', obj.percentage);
});
// 實際上傳文件
upload.single('logo')(progress, res, next);
});
app.post('/upload', function (req, res, next) {
res.send({ret_code: '0'});
});
app.get('/form', function(req, res, next){
var form = fs.readFileSync('./form.html', {encoding: 'utf8'});
res.send(form);
});
app.listen(3000);
multipart類型,需要監(jiān)聽length
來獲取文件真實大小。(官方文檔里是通過conviction
事件,其實是有問題的)
// 獲取上傳文件的真實長度(針對 multipart)
progress.on('length', function nowIKnowMyLength (actualLength) {
console.log('actualLength: %s', actualLength);
progress.setLength(actualLength);
});
progress-stream
獲取真實文件大小的bug?針對multipart文件上傳,progress-stream 實例子初始化時,參數(shù)length需要傳遞非數(shù)值類型,不然你獲取到的進度要一直是0,最后就直接跳到100。
至于為什么會這樣,應該是 progress-steram
模塊的bug,看下模塊的源碼。當length
是number類型時,代碼直接跳過,因此你length一直被認為是0。
tr.on('pipe', function(stream) {
if (typeof length === 'number') return;
// Support http module
if (stream.readable && !stream.writable && stream.headers) {
return onlength(parseInt(stream.headers['content-length'] || 0));
}
// Support streams with a length property
if (typeof stream.length === 'number') {
return onlength(stream.length);
}
// Support request module
stream.on('response', function(res) {
if (!res || !res.headers) return;
if (res.headers['content-encoding'] === 'gzip') return;
if (res.headers['content-length']) {
return onlength(parseInt(res.headers['content-length']));
}
});
});
https://github.com/expressjs/...
https://github.com/freeall/pr...
已找到答案, 方法如下
server {
listen 80;
server_name localhost;
location /a/ { #a目錄的404設置
error_page 404 /err1.html;
}
location /b/ { #b目錄的404設置
error_page 404 /err2.html;
}
}
不需要寫.htaccess
,甚至這個文件都不建議啟用。
你需要看的其實就是apache的批量虛擬主機,這個在方案官方文檔就有: https://httpd.apache.org/docs...
如果只是想做到一個工作線程+n個io線程的話,不管是阻塞還是非阻塞都是可以做到的。
先試試這個
location ^~ /appdoc {
root /web/web1/appdoc/
try_files xxx xxx xxx
}
檢查下/etc/hosts文件有沒有配置
127.0.0.1 localhost
console.log('name' in daili,'time' in daili);
設置的 IP 必須是本機的,你可以通過下面的命令查到本機的所有 IP
ip address
數(shù)據(jù)存儲路徑修改需要重新初始化數(shù)據(jù)庫的,你確定你修改成功了?
連接慢的主要原因是DNS解析導致
一、測試查找具體原因:
1、使用ssh -v host進行debug
然后就會輸出一大堆debug,通過debug信息就可以看到連接到什么地方被耽擱了
比如會顯示如下信息:
[html] view plain copy
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
No credentials cache found
2、檢測連接時間
二、解決方法(建議一個個設置,因為每個人連接慢的原因都不一樣):
注意:修改之后記得重啟sshd服務
1、關閉DNS反向解析
在linux中,默認就是開啟了SSH的反向DNS解析,這個會消耗大量時間,因此需要關閉。
UseDNS=no
在配置文件中,雖然UseDNS yes是被注釋的,但默認開關就是yes
2、關閉SERVER上的GSS認證
在authentication gssapi-with-mic有很大的可能出現(xiàn)問題,因此關閉GSS認證可以提高ssh連接速度。
GSSAPIAuthentication no
3、修改server上nsswitch.conf文件
找到
hosts: files dns
改為
hosts:files
hosts: files dns這一行含義是對于訪問的主機進行域名解析的順序,是先訪問file,也就是/etc/hosts文件,如果hosts中沒有記錄域名,則訪問dns,進行域名解析,如果dns也無法訪問,就會等待訪問超時后返回,因此等待時間比較長。
注意:如果SERVER需要通過域名訪問其他服務器,則需要保留此行。
4、修改SERVER上resolv.conf文件
4.1、刪除/etc/resolv.conf中所有不使用的IP。
4.2、把nameserver全部刪除,問題也能解決,但是服務器就無法上網(wǎng)了。
4.3、如果SERVER曾經(jīng)配置過雙網(wǎng)卡,則在該文件中會有一行目前不使用的IP地址,刪除該行即可。
5、修改SERVER上hosts文件
在SERVER上/etc/hosts文件中把客戶端的IP和HOSTNAME加入
6、打開SERVER上的IgnoreRhosts參數(shù)
IgnoreRhosts參數(shù)可以忽略以前登錄過主機的記錄,設置為yes后可以極大的提高連接速度
IgnoreRhosts yes
7、修改客戶端的hosts文件
將目標SERVER的IP和域名加上去,使得本機的DNS服務能解析目標地址。
192.168.100.11 doiido.com
注:hosts文件格式為'目標SERVER_IP 目標SERVER_NAME'。但是使用這個方法有一個弊端,如果需要給每臺SERVER都添加一個域名解析。
8、修改客戶端配置文件ssh_conf(注意,不是sshd_conf)
找到
GSSAPIAuthentication yes
改為
GSSAPIAuthentication no
https://zhidao.baidu.com/ques... 我的問題答案已經(jīng)在這里找到解決方法了
1、根據(jù)你的截圖,流量高峰也就400多KB,所以1M帶寬就夠你用了,1M等于1024KB
2、經(jīng)??催@個趨勢圖,根據(jù)具體情況去調(diào)整帶寬
加個 -f 試試
如果是系統(tǒng)安裝,可以直接用服務管理腳本進行管理,
如ubuntu下/etc/init.d/tomcat8
使用命令
$ sudo service tomcat8 restart
腳本內(nèi)容如下:
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
set +e
if [ -f "$CATALINA_PID" ]; then
start-stop-daemon --stop --pidfile "$CATALINA_PID" \
--user "$TOMCAT8_USER" \
--retry=TERM/20/KILL/5 >/dev/null
if [ $? -eq 1 ]; then
log_progress_msg "$DESC is not running but pid file exists, cleaning up"
elif [ $? -eq 3 ]; then
PID="`cat $CATALINA_PID`"
log_failure_msg "Failed to stop $NAME (pid $PID)"
exit 1
fi
rm -f "$CATALINA_PID"
rm -rf "$JVM_TMP"
else
log_progress_msg "(not running)"
fi
log_end_msg 0
set -e
;;
基本的思路是先用start-stop-daemon發(fā)停止信號給tomcat進程, 如果進程不能順利結束,再用kill殺掉. 這里TERM/20/KILL/5
意思是先發(fā)送TERM
信號20秒沒有結束接著發(fā)送KILL
信號,超時時間為5秒.
如果你自己管理,也可以參考上面腳本來完成.
后端不是一樣可以拿到數(shù)據(jù)嗎
是沒問題啊,你跟后端商量好就行。
請問怎么改造可以讓后臺POST時候收到收到參
從network
看你前端本來就沒問題,而問題就變成后端接收不到參數(shù),那么后端可以處理什么content-type
呢?(這是接口定義的問題,人家定義不接受form data
你發(fā)過去有啥用)
一開始以為你是發(fā)送請求的截圖,原來是后臺給的成功實例。。
當然有問題,application/x-www-form-urlencoded
發(fā)送數(shù)據(jù)的格式是a=b&c=d
,而你發(fā)的是json
字符串,你可以用qs
模塊轉一下。
if (type == 'POST') {
sendData = JSON.stringify(data);
}
requestObj.open(type, url, true);
requestObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
requestObj.send(sendData);
然后以后有關Network
的問題,有什么不成功請截個圖發(fā)出來才能看到你到底發(fā)送了什么。
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術與教育服務機構,發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。