api有個(gè)簽名函數(shù)
var store = oss({
accessKeyId:conf.AccessKeyId,
accessKeySecret: conf.AccessKeySecret,
bucket: 'east',
region: 'oss-cn-hangzhou'
});
var url = store.signatureUrl('ttt');
console.log('URL:'+url);
這樣就搞定了。
在這里要感謝阿里云的工程師!
之前項(xiàng)目中用到的,你可以參考一下:
function generateDateAxis(config) {
// 合并參數(shù)
let p = Object.assign({
// 類(lèi)型
type: '年',
// 方向
direction: 'prev',
// 模板
source: '',
target: 'YYYYMMDD',
// 開(kāi)始
start: moment(),
// 時(shí)間軸長(zhǎng)度,默認(rèn)2個(gè)
length: 2,
// 處理時(shí)間軸單個(gè)時(shí)間的方法
forEach: function (item, idx, axis) {
return item;
},
// 停止添加時(shí)間軸元素的方法
stop: function (item, idx, axis) {
return false;
},
// 升序 ascend(asc) || 降序 descend(desc)
sort: 'asc'
}, config);
// 時(shí)間類(lèi)型映射表
const DATE_TYPE_MAP = {
'year|年': 'years',
'month|月': 'months',
'week|周|星期': 'weeks',
'day|日|天': 'days',
};
// 類(lèi)型
let type = '', tstr, treg;
// 根據(jù)參數(shù)type獲取moment需要加減的單位(年|月|星期|日)
for (tstr in DATE_TYPE_MAP) {
treg = new RegExp(tstr);
if (treg.test(p.type)) {
type = DATE_TYPE_MAP[tstr];
break;
}
}
let direction = p.direction === 'prev' ? 'subtract' : 'add', // 減 || 加
Sattern = p.source || p.target, // 源模板
Tpattern = p.target, // 目標(biāo)模板
start = p.start, // 開(kāi)始時(shí)間
sort = p.sort === 'asc' ? 'unshift' : 'push', // 排序
unit, // 時(shí)間軸單個(gè)元素
idx = 0, // 時(shí)間軸下標(biāo)
newStart;
// 循環(huán)獲取單個(gè)時(shí)間,并通過(guò)forEach方法處理,然后放入result數(shù)組返回
let axis = (function loop(l, r) {
newStart = moment(start, Sattern)[direction](idx, type).format(Tpattern);
// 處理生成的時(shí)間軸元素
unit = p.forEach(newStart, idx, r);
// 處理后的元素合法則放進(jìn)結(jié)果數(shù)組
r[sort](unit);
if (r.length === l || p.stop(unit, idx, r)) {
return r;
}
idx++;
return loop(l, r);
})(p.length, []);
return axis;
}
> 用法:
let result = generateDateAxis({
// 類(lèi)型
type: '月',
// 方向
direction: 'prev',
// 模板
source: 'YYYYMM',
target: 'YYYY-MM',
// 開(kāi)始
start: moment(),
// 時(shí)間軸長(zhǎng)度,默認(rèn)2個(gè)
length: 10,
// 處理時(shí)間軸單個(gè)時(shí)間的方法
forEach: function (item, idx, axis) {
return item;
},
// 停止添加時(shí)間軸元素的方法
stop: function (item, idx, axis) {
return false;
},
// 升序 ascend(asc) || 降序 descend(desc)
sort: 'asc'
});
console.log(result);啟動(dòng)參數(shù)加 -Djava.awt.headless=true 試下
問(wèn)題已解決,
使用_req對(duì)象,通過(guò)_req.query屬性獲取到參數(shù)值,判斷是否等于其中的一個(gè)值,如果是的話(huà)就返回true。不是就返回false
減少?gòu)棿拜敵鰞?nèi)容
Flexible 跟 css 的 flex 是一回事.
Stack 跟 css 的 position: absolute 是一樣的. 絕對(duì)布局.
示例代碼中的 Stack 沒(méi)有實(shí)際意義.
使用 h+開(kāi)發(fā)app只需要你熟練前端開(kāi)發(fā),
文檔在這里,照著文檔抄就行了:
http://www.html5plus.org/doc/...
json_decode了解一下:對(duì)json格式的字符串進(jìn)行編碼。
Ctrl + D
dns劫持+腳本注入
// /[0-9]/.test(str) str中有一個(gè)數(shù)字都返回 true
// !/[0-9]/.test(str) str中沒(méi)有一個(gè)數(shù)字才返回 true
if($("#code").val().length!=3 && !/[0-9]/.test($("#code").val())){
}把password的字段長(zhǎng)度改成255
我后來(lái)寫(xiě)了兩個(gè)代碼一樣的東西,發(fā)現(xiàn)一個(gè)可以用一個(gè)不能用,很可能是字符集的問(wèn)題
關(guān)鍵要看你返回到哪里去了,是丟掉了還是存起來(lái)了。沒(méi)有返回查出結(jié)果直接就丟掉了,如果返回并保存起來(lái)了,內(nèi)存占用當(dāng)然要大一些。
js 和 css 都只是靜態(tài)資源,你裝一個(gè) nginx 啟動(dòng)起來(lái)就可以了。相關(guān)內(nèi)容隨便一搜索就有,比如 http://www.runoob.com/linux/n...
已解決 是我太菜
graphql的本質(zhì)其實(shí)是字符串,所以你如果是前端只需要傳遞字符串即可
params = {'query': '''{
viewer {
name
}
}'''}
res = requests.post(url=url, params=params)
其中query是自定義的參數(shù)名,取決于后端如何解析,graphql對(duì)后端的要求較高,目前除了nodejs沒(méi)有特別好用的后端。
個(gè)人感覺(jué)graphql特別適合查詢(xún)圖數(shù)據(jù)庫(kù),對(duì)于關(guān)系型數(shù)據(jù)庫(kù)我一直沒(méi)找到比較好用的后端模塊
用的是spring mvc吧,spring mvc有ArgumentResolver處理輸入?yún)?shù),因此可以將article反序列化(即你說(shuō)的映射上)。category映射不上可能是因?yàn)樽訉?duì)象序列化失敗,可以debug跟一下?;蛘咦远x一個(gè)ArgumentResolver來(lái)解析復(fù)合類(lèi)型的數(shù)據(jù)。另外一個(gè)簡(jiǎn)單方式,讓簡(jiǎn)單傳一個(gè)json數(shù)據(jù),后端用String接,然后用Json反序列化的方式轉(zhuǎn)換為后段的對(duì)象
主構(gòu)造函數(shù)在類(lèi)頭中申明,而次構(gòu)造函數(shù)在類(lèi)體中申明;
主構(gòu)造函數(shù)沒(méi)有任何修飾符時(shí)可以省略constructor關(guān)鍵字,而次構(gòu)造函數(shù)不能省略;
主構(gòu)造函數(shù)不能包含任何的代碼,而次構(gòu)造函數(shù)可以;
主構(gòu)造函數(shù)的參數(shù)可以在類(lèi)體中的屬性初始化代碼和初始化塊中使用,而次構(gòu)造函數(shù)的參數(shù)不能;
主構(gòu)造函數(shù)中可以直接申明并初始化屬性,而次構(gòu)造函數(shù)不能直接申明屬性;
如果申明了主構(gòu)造函數(shù),那么所有的次構(gòu)造函數(shù)都必需直接或間接地委托給主構(gòu)造函數(shù);
非抽象類(lèi)中如果沒(méi)有聲明任何構(gòu)造函數(shù),會(huì)生成一個(gè)不帶參數(shù)的主構(gòu)造函數(shù),而不會(huì)生成任何次構(gòu)造函數(shù)。
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。