【node.js】知識(shí)點(diǎn)總結(jié)詳細(xì)_第1頁(yè)
【node.js】知識(shí)點(diǎn)總結(jié)詳細(xì)_第2頁(yè)
【node.js】知識(shí)點(diǎn)總結(jié)詳細(xì)_第3頁(yè)
【node.js】知識(shí)點(diǎn)總結(jié)詳細(xì)_第4頁(yè)
【node.js】知識(shí)點(diǎn)總結(jié)詳細(xì)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

【node.js】知識(shí)點(diǎn)總結(jié)不會(huì)就問(wèn)就查詢!科技利民,學(xué)海?涯2!?、概念Node.js不是語(yǔ)?、不是庫(kù)、不是框架;的運(yùn)?環(huán)境,可以解析、執(zhí)?JavaScript代碼;使JavaScript可以脫離瀏覽器來(lái)運(yùn)?;?、組成部分、瀏覽器中JavaScript:ECMAScriptDOMBOM2、Node.js中JavaScript:ECMAScript沒(méi)有DOM、BOM為JavaScript提供了?些服務(wù)器級(jí)別的操作API:?件讀寫(xiě)?絡(luò)服務(wù)的構(gòu)建?絡(luò)通信http服務(wù)器等。。。三、特點(diǎn)事件驅(qū)動(dòng)?阻塞IO模型(異步)輕量和?效構(gòu)建于chrome的V8引擎之上四、?途web命令??具B/S編程模型模塊化編程N(yùn)ode常?API異步編程Express開(kāi)發(fā)框架Ecmascript6六、安裝使?:穩(wěn)定版(LTS)、最新體驗(yàn)版(Current);(重復(fù)下載會(huì)升級(jí)覆蓋)命令?檢查:node--version/node-v;對(duì)應(yīng)?錄下執(zhí)?js腳本?件:nodeaa.js創(chuàng)建JavaScript腳本?件,不要使?node.js打開(kāi)命令??具定位到?件執(zhí)?js?件讀寫(xiě)?件:fs模塊(file-system?件系統(tǒng):提供所有?件操作API)引?模塊:varfs=require('fs')fs.readFile(',function(error,data)if(error)console.log('elseconsole.log(data)},讀取成功:(data:所讀數(shù)據(jù);error:null)讀取失?。海╠ata:null;error:錯(cuò)誤對(duì)象(直接展?給?戶不友好))默認(rèn)返回?進(jìn)制數(shù)據(jù)(以?六進(jìn)制顯?),使?toString();例如:fs.readFile('./hello.txt',function(error,data){console.log(data.toString())})寫(xiě)?件:fs.writeFile('?件路徑',‘?件內(nèi)容’,回調(diào)函數(shù)function(error){})寫(xiě)?成功:error:null,寫(xiě)?失?。篹rror:錯(cuò)誤對(duì)象刪除、創(chuàng)建?件等。。。http服務(wù):http模塊請(qǐng)求、響應(yīng)都在實(shí)例的on?法的回調(diào)函數(shù)中;請(qǐng)求:主要?于告訴服務(wù)器,客戶端傳的是什么路徑;req.url響應(yīng):?于針對(duì)不同路徑做對(duì)應(yīng)響應(yīng),只能傳字符串或?進(jìn)制(讀取?件時(shí)的數(shù)據(jù)就是?進(jìn)制),所以其他數(shù)據(jù)需要轉(zhuǎn)成字符串/?進(jìn)制;?式?:res.write([響應(yīng)內(nèi)容]);res.end();?式?:直接res.end([響應(yīng)內(nèi)容]);響應(yīng)內(nèi)容:必須是字符串(通過(guò)編碼規(guī)則轉(zhuǎn)成?進(jìn)制)或?進(jìn)制,因?yàn)樵谇昂蠖瞬煌Z(yǔ)?間傳輸?shù)臄?shù)據(jù)是以JSON字符串形式;JSON.stringify();轉(zhuǎn)成json字符串(序列化:?于傳輸);varvarhttp=require('http')varserver=http.createServer()//返回?個(gè)實(shí)例server.on('request',function(request,response){console.log('當(dāng)前訪問(wèn)的路徑是'+request.url)/l`/`varurl=req.url;if(url=='/'){response.end('hello?頁(yè)');//中?會(huì)有亂碼,要配置響應(yīng)內(nèi)容類(lèi)型}else{response.setHeader('Content-Type','text/plain;charset=utf-8');tf-8;response.write('hello其他');//中?會(huì)有亂碼,要配置響應(yīng)內(nèi)容類(lèi)型response.end();}/)})//監(jiān)聽(tīng)客戶端打開(kāi)?址,服務(wù)器收到請(qǐng)求時(shí)回調(diào)server.listen(3000,function(){console.log('服務(wù)器啟動(dòng)成功了,可以通過(guò):3000/來(lái)進(jìn)?訪問(wèn)!')})//當(dāng)服務(wù)啟動(dòng)后回調(diào),80端?時(shí)客戶端不需要輸端?;七、Node中的JavaScriptEcmaScript內(nèi)置的具名的:var[模塊名]=require('[模塊名]');常?:fs,http,os,path,第三?模塊:Expressweb開(kāi)發(fā)框架,需要下載引?;?戶?定義模塊:就是常說(shuō)的模塊化編程,引?js?件;Node中沒(méi)有全局作?域,只有模塊作?域,即引?的不同js?件,不能互相訪問(wèn)內(nèi)部變量;所以要在js?件內(nèi)使?exports對(duì)象導(dǎo)出內(nèi)部變量、?法;引?時(shí)可以不寫(xiě)后綴.js;但必須寫(xiě)相對(duì)路徑./,../,否則會(huì)被認(rèn)為是核?模塊,報(bào)錯(cuò)!?、服務(wù)器端的ip與端?號(hào)IP:ip地址?來(lái)定位計(jì)算機(jī);;(因?yàn)?臺(tái)計(jì)算機(jī)有多個(gè)應(yīng)?程序,靠IP地址?法區(qū)分通訊)客戶端中瀏覽器等應(yīng)?程序會(huì)默認(rèn)找?個(gè)空閑端?來(lái)與服務(wù)器通信;?些指定端?號(hào)與指定服務(wù)聯(lián)系,不會(huì)被默認(rèn)使?;80,?戶就不?寫(xiě)了;3000端?號(hào),?般在開(kāi)發(fā)測(cè)試時(shí)?;問(wèn)題原因:服務(wù)器默認(rèn)發(fā)送的json字符串?dāng)?shù)據(jù)(讀取?件時(shí)?件內(nèi)容編碼成的?進(jìn)制所采?的規(guī)則由?件創(chuàng)建時(shí)的編碼環(huán)境決定,?般?開(kāi)發(fā)?具創(chuàng)建的?件都是utf-8)就是utf-8問(wèn)題原因:服務(wù)器默認(rèn)發(fā)送的json字符串?dāng)?shù)據(jù)(讀取?件時(shí)?件內(nèi)容編碼成的?進(jìn)制所采?的規(guī)則由?件創(chuàng)建時(shí)的編碼環(huán)境決定,?般?開(kāi)發(fā)?具創(chuàng)建的?件都是utf-8)就是utf-8編碼,但是瀏覽器默認(rèn)不知道是什么編碼,會(huì)按當(dāng)前操作系統(tǒng)默認(rèn)的編碼格式,如:中?操作系統(tǒng)的默認(rèn)編碼規(guī)則:GBK,兩者規(guī)則不同導(dǎo)致中?亂碼。html?件前部分字母是都很正常,GBK正常解碼?進(jìn)制數(shù)據(jù),識(shí)別看到metaUTF-8,所以在傳html?件時(shí)要聲明類(lèi)型和編碼規(guī)則,元數(shù)據(jù)meta中定義的編碼格式等同于在服務(wù)器端響應(yīng)編碼格式)解決?案:聲明響應(yīng)數(shù)據(jù)的類(lèi)型(普通?本解決?案:聲明響應(yīng)數(shù)據(jù)的類(lèi)型(普通?本text/plain、html代碼text/html等),并告訴瀏覽器編碼格式charset=utf-8;不管以字符串形式還是?進(jìn)制傳的都可以視情況需要在服務(wù)器設(shè)置響應(yīng)數(shù)據(jù)類(lèi)型:提供數(shù)據(jù)類(lèi)型和編碼格式給瀏覽器發(fā)送的數(shù)據(jù)與對(duì)應(yīng)響應(yīng)類(lèi)型:圖?需要指定響應(yīng)類(lèi)型,但不需要指定編碼格式;?般只為字符數(shù)據(jù)(中?、字母、數(shù)字、符號(hào)等)指定編碼格式utf-8;如:res.setHeader('Content-Type','text/plain;charsetutf-8')如:res.setHeader('Content-Type','text/html;charsetutf-8')特別地:對(duì)于響應(yīng)讀取html?件的內(nèi)容時(shí),可以不寫(xiě)上述聲明是因?yàn)闉g覽器?動(dòng)識(shí)別html代碼,并且html代碼中meta元數(shù)據(jù)也可以聲明編碼格式。?、代碼書(shū)寫(xiě)風(fēng)格與分號(hào)的使?常見(jiàn)代碼書(shū)寫(xiě)風(fēng)格規(guī)范:?般推薦不加分號(hào),必須加分號(hào)的情況:以模板字符串``開(kāi)頭的代碼前加;;();[]??、node.js實(shí)現(xiàn)Apache功能1、實(shí)現(xiàn)瀏覽器輸?域名+端?號(hào)/?件名,就顯?服務(wù)器上指定?件對(duì)應(yīng)的內(nèi)容;利?if語(yǔ)句判斷?戶輸?的路徑;利?fs模塊,針對(duì)不同路徑找到對(duì)應(yīng)?件并讀取內(nèi)容(可以直接響應(yīng),因?yàn)閒s.readFile()默認(rèn)返回的data就是?進(jìn)制(以?六進(jìn)制顯?),如果要對(duì)data進(jìn)?處理可以toString()轉(zhuǎn)為字符串);2、實(shí)現(xiàn)在瀏覽器顯??件?錄功能;利?http核?模塊創(chuàng)建服務(wù);利?fs.readdir(path[,options],callback)核?模塊讀取?件?錄信息,返回?cái)?shù)組形式,?于模板引擎替換?錄數(shù)據(jù);怎么替換?:要使?模板引擎內(nèi)置?法:{{each[數(shù)組名]}}<p>數(shù)組中的{{$value}}</p>{{/each}},遍歷數(shù)組中每?項(xiàng)從??產(chǎn)每?項(xiàng)利?fs.readFile(path[,options],callback)核?模塊讀取?于?錄顯?的html模板?件并結(jié)合模板引擎如:art-template第三?模塊替換?錄內(nèi)容(所以要data.toString()將?進(jìn)制先轉(zhuǎn)為字符串,當(dāng)做替換模板使?);重點(diǎn):怎么判斷?錄是?件夾還是?件?也有模塊可以實(shí)現(xiàn);最終將改好的字符串響應(yīng)給瀏覽器res.end(newData),實(shí)現(xiàn)在瀏覽器顯??錄、點(diǎn)擊?錄。補(bǔ)充:第三?art-template補(bǔ)充:第三?art-template模板引擎規(guī)則是識(shí)別字符串內(nèi){{}}中的變量名;(可在前端html頁(yè)?中使?,也可以在后端node中安裝使?)補(bǔ)充:在Node中使??式:vartemplate=require('art-tmplate')varret=template.render(data.toString(),{name:'jack'})/??、客戶端渲染與服務(wù)端渲染渲染:就是將數(shù)據(jù)以html元素這種瀏覽器可以識(shí)別的?式顯?;客戶端渲染:采?ajax等異步操作請(qǐng)求數(shù)據(jù),速度更快;但不利于SEO,爬?抓不到異步數(shù)據(jù)(在源代碼中看不到數(shù)據(jù):如京東商品的評(píng)論區(qū)分頁(yè)功能);服務(wù)端渲染:直接傳過(guò)來(lái)帶數(shù)據(jù)的html頁(yè)?,爬?在源代碼中能找到數(shù)據(jù),有利于SEO;(在?頁(yè)源代碼中可以看到數(shù)據(jù),如京東商品展?功能)所以?般?站前后端渲染都會(huì)?到,為了更快、也為了SEO。背景:當(dāng)我們?cè)趆tml頁(yè)?中使?背景:當(dāng)我們?cè)趆tml頁(yè)?中使?link、script、img、iframe、video、audio等需要再次發(fā)請(qǐng)求引?靜態(tài)資源的標(biāo)簽時(shí),其實(shí)就是?動(dòng)?向服務(wù)器發(fā)了?次請(qǐng)求(請(qǐng)求路徑分為:?絡(luò)路徑、url?件路徑會(huì)拼接在服務(wù)器地址后?;),所以服務(wù)器端也會(huì)對(duì)這些請(qǐng)求做響應(yīng)。(如果沒(méi)有響應(yīng),瀏覽器就會(huì)?直處于等待狀態(tài),沒(méi)法渲染頁(yè)?)處理?式:處理?式:服務(wù)器將靜態(tài)資源統(tǒng)?放到?個(gè)?件夾public中,然后在html頁(yè)?中通過(guò)?件路徑引?,這樣可以通過(guò)req.url判斷只要是以/public/開(kāi)頭的就直接把這個(gè)url當(dāng)做?件路徑去找這個(gè)?件,然后響應(yīng)回去;所以html頁(yè)?中使?的路徑要是?件路徑。?四、服務(wù)器對(duì)表單提交的處理傳統(tǒng)req.url返回的是整個(gè)根?錄及以后的部分;包含了路徑和query信息;require('url')當(dāng)客戶端使?get請(qǐng)求時(shí),服務(wù)器要想得到query數(shù)據(jù),單從req.url中不容易獲取,所以有了專門(mén)處理路徑的核?模塊:varurl=require('url');使?這個(gè)模塊的parse?法可以得到?個(gè)路徑對(duì)象;varpathObj=url.parse(req.url,true);第?個(gè)參數(shù)?于將query的屬性值以對(duì)象形式呈現(xiàn),默認(rèn)是字符串,這?會(huì)涉及編碼格式;pathObj.pathname路徑字符串來(lái)決定響應(yīng)內(nèi)容;varpathObj=url.parse(req.url,true)并向模板中使?上pathObj.query對(duì)象;?如,添加到已有數(shù)組中,并使?重定向讓頁(yè)?刷新;res.statusCode=302res.setHeader('Location','/')res.end()重定向:響應(yīng)設(shè)置302狀態(tài)碼(臨時(shí)重定向,再次發(fā)請(qǐng)求,瀏覽器不記住重定向后的地址,相當(dāng)于每次都是第?次,還是會(huì)向原?址發(fā)請(qǐng)求),瀏覽器收到這個(gè)狀態(tài)碼,就直接去響應(yīng)頭中找Location;在響應(yīng)頭中設(shè)置Location告訴瀏覽器重定向的路徑;res.statusCode=302res.setHeader('Location','/')res.end()但是這?步不是數(shù)據(jù)持久化,服務(wù)器?重啟新加的數(shù)據(jù)會(huì)沒(méi)有。?四、Node.js的測(cè)試?法瀏覽器中有F12調(diào)試?具node中也有調(diào)試?具:>node命令?直接輸命令,可以直接?node中API,按ctrl+c+c退出。模塊分類(lèi):核?模塊模塊分類(lèi):核?模塊1、Node.js中的模塊化基于Commen.JS;導(dǎo)出的是:module.exports對(duì)象;內(nèi)部默認(rèn)varmodule.exports={};varexports=module.exports;returnmodule.exports所以想導(dǎo)出什么,往對(duì)象中添加,?般導(dǎo)出單個(gè)?:module.exports=;導(dǎo)出多個(gè)?:exports.屬性名=或module.exports={}2、require加載規(guī)則優(yōu)先從緩存加載;緩存有的就不執(zhí)?內(nèi)部代碼,?是返回對(duì)象module.exports;require('fs'):引?核?模塊require('fs')require('./aa.js'):引??定義模塊(路徑?式)require('art-template'):引?第三?模塊核?模塊、第三?模塊的加載:在node_module?件下的同名?件中找package.json中的main屬性對(duì)應(yīng)的值,如index.js,然后去這個(gè)?件并執(zhí)?;如果main沒(méi)有,那默認(rèn)找index.js;本?件夾沒(méi)有則往外找package.json、index.js,直到找到根?錄。3、package.json會(huì)?動(dòng)記錄同?件中npm下載時(shí)帶--save、--save-dev的第三?模塊;不帶不記錄;4、使?npminit會(huì)?動(dòng)?成package.json?件;5、使?npminstall會(huì)?動(dòng)根據(jù)package.json中記錄下載包;?于拷貝項(xiàng)?時(shí)下載包。6、7、解決npm被墻問(wèn)題(國(guó)外?站訪問(wèn)慢):使?nrm源管理器;可以?npm命令,但是源變了;下載指定源:npminstall--globalcnpm;這是可以?新源:cnpminit;cnpm是淘寶鏡像,每10分鐘從npm中更新?次包數(shù)據(jù)。配置npm以指定源,npmconfiglist查看:npmconfigsetregistry;這樣還是npm命令,源變了;?六、Node.js的第三?模塊:Express1、輕便的web服務(wù)器開(kāi)發(fā)框架;(封裝的http核?模塊)2、安裝npminstallexpress--save3、訪問(wèn)路徑:公開(kāi)指定?錄:app.use('/public/',express.static('./public/'));?戶可以輸?以/public/開(kāi)頭的路徑;指定單個(gè)?錄(路由):app.get('/',function(req,res){});?戶訪問(wèn)根?錄時(shí)的情況;express404頁(yè)?。4、在expressres響應(yīng)?法會(huì)?動(dòng)結(jié)束,不?res.end()?七、Node.js的路徑問(wèn)題1、fs?件操作中?件路徑的相對(duì)路徑中./可以省略;2、require模塊加載時(shí)的相對(duì)路徑中./不能省,省略就是加載核?模塊/第三?模塊;3、相對(duì)路徑含義:./aa.jsaa.js/aa.js:當(dāng)前磁盤(pán)根?錄中../aa.js:上?級(jí)?錄中4、c:/aa.js:(絕對(duì)路徑)c盤(pán)根?錄中??、Node.js的服務(wù)?動(dòng)重啟nodemon:?于修改代碼保存后?動(dòng)重啟服務(wù)器;nodemonnodeinstall--globalnodemomnodemonaa.jsnodeinstall--globalnodemomnodemonaa.js?九、express的靜態(tài)資源服務(wù)1、通過(guò)路由匹配訪問(wèn)指定資源:app.get('/',function(req,res){})、app.post('/',function(req,res){})2、通過(guò)公開(kāi)指定?錄訪問(wèn)?錄內(nèi)?件:app.use('/public/',express.static('./public/')):以/public/為根?錄開(kāi)頭的路徑,后?的部分會(huì)去相應(yīng)?件中找,并以正確編碼顯?;app.use(express.static('./public/')):只要路由中沒(méi)有定義的,會(huì)直接截取根?錄/后?部分,去./public/?件夾內(nèi)部中找,找到就顯?;app.use(express.static('./public/'))3、使?模板引擎模塊art-template安裝:npminstall--saveart-templateexpress-art-template配置:識(shí)別.art結(jié)尾的?件,并使?模板引擎;可以在app.engine中更改設(shè)置;varexpress=require(‘express’)varapp=express()app.engine('art',require('express-art-template'))//可改后綴名app.engine('art',require('express-art-template'))app.set('views',path.join(dirname,'./views/'))//更改默認(rèn)的views查找?錄使?:內(nèi)部設(shè)置?動(dòng)去同?錄下的views?件夾中查找這個(gè)模板?件(res.render('index.art')不傳對(duì)象參數(shù)就是直接傳頁(yè)?信息);app.get('/',function(req,resres.render('index.art',{user:name:'aaa //res.redirect('/')4、獲取請(qǐng)求數(shù)據(jù)get?法:req.query//就是對(duì)象形式post?法:借助第三?模塊body-parser,res.body也是對(duì)象形式;??、使?express實(shí)現(xiàn)增刪改查數(shù)據(jù)(CreateUpdateReadDelete)1、CURD起步新建?件夾npminit,初始化package.json安裝第三?模塊express、art-template、express-art-template配置、使?模塊,創(chuàng)建服務(wù)器?件;2、以.json?件為數(shù)據(jù)存儲(chǔ)?式,對(duì)?件數(shù)據(jù)進(jìn)?CURD利?fs核?模塊,讀取?件數(shù)據(jù);將?進(jìn)制數(shù)據(jù)toString()轉(zhuǎn)為json字符串(或者fs.readFile('./aa.json','utf8',function(err,data){}));將json字符串JSON.parse(data)轉(zhuǎn)為json對(duì)象;最后使?內(nèi)部屬性JSON.parse(data).students,?來(lái)做模板引擎數(shù)據(jù);3、配置服務(wù)器端路由:router.js使?express中的router,varrouter=express.Router()–router.js加載路由,app.use(router)–app.js4、創(chuàng)建操作頁(yè)?5、封裝對(duì)學(xué)?數(shù)據(jù)的操作:students.js利?ID獲取數(shù)據(jù)和保存編輯時(shí)注意:利?ID獲取數(shù)據(jù)和保存編輯時(shí)注意:通過(guò)req.query、req.body獲取的提交數(shù)據(jù)是對(duì)象形式,但對(duì)象中屬性值都是字符串類(lèi)型(所以id屬性也是),需要轉(zhuǎn)變student.id=parseInt(student.id);通過(guò)JSON.parse(data)將json?件中字符串轉(zhuǎn)為對(duì)象形式時(shí),內(nèi)部屬性值原本是什么類(lèi)型還不變;刪除前彈框確認(rèn):node環(huán)境中沒(méi)有confirm,所以在模板頁(yè)?中判斷;<ahref="/students/delete?id={{$value.id}}"onclick="if(confirm('確定刪除?')==false)returnfalse;">刪除</a>編輯頁(yè)?男?性別選中的判斷:<<script>window.onload=function(){if("{{student.gender}}"==0){//express-art-template模塊的語(yǔ)法document.getElementsByName('gender')[0].checked='checked';}else{document.getElementsByName('gender')[1].checked='checked';}}</script>Array.Atotype.find=function(Func){for(vari=0;i<this.length;i++){if(Func(this[i],i)){returnthis[i]//i;返回‘i’,就是findIndex?法}}}find:varvarid='1'varstu=students.find(function(item,index){returnitem.id==parseInt(id)})findIndex:varvarid=1vardelId=students.findIndex(function(item,index){returnitem.id==parseInt(id)})?于得到?個(gè)函數(shù)內(nèi)部異步操作的結(jié)果,在異步函數(shù)內(nèi)部調(diào)?執(zhí)?;7、異步編程–回調(diào)函數(shù)?于得到?個(gè)函數(shù)內(nèi)部異步操作的結(jié)果,在異步函數(shù)內(nèi)部調(diào)?執(zhí)?;常見(jiàn)異步操作:setTimeout、readFile、writeFile、數(shù);使??式:正常函數(shù)–>傳參數(shù):–>正常函數(shù)中使?異步操作–>在異步操作中調(diào)?這個(gè)回調(diào)函數(shù)–>并將異步操作的值傳給這個(gè)回調(diào)函數(shù)作參數(shù);functionfunctionadd(x,y,callback){//varx=10//vary=20//varcallback=function(sum){...}setTimout(function(){varsum=x+ycallback(sum)},1000)}add(10,20,function(sum){returnsum}),???、JavaScript模塊化及其他補(bǔ)充node.js中模塊化:借助CommonJSEcmaScript6中:?帶的模塊化規(guī)范(官?規(guī)范)瀏覽器中模塊化:借助第三?庫(kù)require.js:也稱為AMD規(guī)范sea.js:也稱為CMD規(guī)范EcmaScript6:通過(guò)編譯器?具打包–EcmaScript5;以防?瀏覽器不?持;新技術(shù)的?的是為了提?效率,增加可維護(hù)性,可以利?編譯器?具

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論