這篇文章將為大家詳細(xì)講解有關(guān)使用Node怎么實(shí)現(xiàn)一個(gè)Axure文件在線預(yù)覽功能,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)是一家專業(yè)提供大柴旦企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都做網(wǎng)站、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為大柴旦眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
實(shí)現(xiàn)代碼如下
const Koa = require('koa'); const path = require('path'); const fs = require('fs'); let mimes = { 'css': 'text/css', 'html': 'text/html', 'jpg': 'image/jpeg', 'jpeg': 'image/jpeg', 'json': 'application/json', 'js': 'text/javascript', 'xml': 'text/xml', 'png': 'image/png', 'pdf': 'application/pdf', 'less': 'text/css', 'gif': 'image/gif', 'txt': 'text/plain', 'tiff': 'image/tiff', 'svg': 'image/svg+xml' }; // Scan dir function walk(reqPath) { let files = fs.readdirSync(reqPath); let fileList = []; for (let i = 0, len = files.length; i< len; i++) { let item = files[i]; if (item.startsWith('.')) { continue; } let realPath = reqPath + '/' + files[i]; if (isDir(realPath)) { fileList.push(filter(reqPath, files[i])); } else { fileList.push(files[i]); } } return fileList; } function isDir(path){ return fs.existsSync(path) && fs.statSync(path).isDirectory(); } // function filter(reqPath, filePath) { let files = fs.readdirSync(reqPath + '/' + filePath); for (let i = 0; i < files.length; i++) { let item = files[i]; if (item.endsWith('index.html')) { return filePath + '/' + 'index.html'; } } return filePath; } function dir(url, reqPath) { let contentList = walk(reqPath); let result = '<div align="center" >Product Document</div><ul>'; if (url == '/') { url = ''; } for (let [index, item] of contentList.entries()) { let realHref = url + '/' + item; let realItem = item.split('/'); result += '<li> <a href=' + realHref + '>' + realItem[0] + '</a></li>'; } result = result + '</ul>'; return result; } async function file (url, filePath) { let resultMime = parseMime(url); let content; if (resultMime && resultMime.indexOf('image/') >= 0) { content = fs.readFileSync(filePath, 'binary'); } else { content = fs.readFileSync(filePath, 'utf8'); } return content; } async function content(ctx, fullStaticPath) { let url = decodeURI(ctx.url); let reqPath = path.join(fullStaticPath, url); let exist = fs.existsSync(reqPath); let content = ''; if (!exist) { content = 'Local file not exists'; } else { let stat = fs.statSync(reqPath); if (stat.isDirectory()) { content = dir(ctx.url, reqPath); } else { content = await file(ctx.url, reqPath); } } return content; } function parseMime(url) { let extName = path.extname(url); extName = extName ? extName.slice(1) : 'unknown'; return mimes[extName]; } const app = new Koa(); const staticPath = '../onlinedoc';`請(qǐng)輸入代碼` app.use(async(ctx) => { let fullStaticPath = path.join(__dirname, staticPath); let resultContent = await content(ctx, fullStaticPath); let resultMime = parseMime(ctx.url); if (resultMime) { ctx.type = resultMime; } if(resultMime && resultMime.indexOf('image/') >= 0) { ctx.res.writeHead(200); ctx.res.write(resultContent, 'binary'); ctx.res.end(); } else { ctx.body = resultContent; } }); app.listen(8080, () => { console.log('Running'); });
關(guān)于使用Node怎么實(shí)現(xiàn)一個(gè)Axure文件在線預(yù)覽功能就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
文章題目:使用Node怎么實(shí)現(xiàn)一個(gè)Axure文件在線預(yù)覽功能
文章URL:http://chinadenli.net/article4/gohsoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、云服務(wù)器、動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)