国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

node學(xué)習(xí)系列之簡(jiǎn)單文件上傳

Achilles / 2845人閱讀

摘要:此為看完入門寫的小自己實(shí)現(xiàn)了一遍,借助的外部模塊只有的模塊的使用原代碼倉(cāng)庫

此為看完node入門寫的小demo,自己實(shí)現(xiàn)了一遍,借助的外部模塊只有formidable
Node.js的Formidable模塊的使用

index.js

const server = require("./server");
const router = require("./router.js");
const requestHandler = require("./requestHandler.js");

var handle = {};
handle["/"] = requestHandler.start;
handle["/start"] = requestHandler.start;
handle["/upload"] = requestHandler.upload;
handle["/show"] = requestHandler.show;

server.start(router.route, handle);

server.js

const http = require("http");
const url = require("url");

const start = (route, handle) => {
    http.createServer((request, response) => {
        let pathname = url.parse(request.url).pathname;
        let postData = "";
        console.log("request from" + pathname + "received");

        route(handle, pathname, response, request);

    }).listen(8888);
}

console.log("server has started");

module.exports = {
    start: start
}

router.js

const route = (handle, pathname, response, request) => {
    console.log("about to route a request for" + pathname);
    if(typeof handle[pathname] === "function") {
        handle[pathname](response, request);
    }else {
        console.log("no request handle found for " + pathname);
        response.writeHead(404, {"Conten-Type": "text/plain"});
        response.write("404 not found");
        response.end();
    }
}

module.exports = {
    route: route
}

requestHandler.js

const querystring = require("querystring");
const fs = require("fs");
const formidable = require("formidable");

const start = (response, request) => {
    console.log("request handle "start" was called");
    let body = `
                
                    
                    Document
                
                
                    
`; response.writeHead(200, {"Conten-Type" : "text/html"}); response.write(body); response.end(); } const upload = (response, request) => { console.log("request handle "upload" was called"); let form = new formidable.IncomingForm(); form.uploadDir = "./upload/tmp"; form.parse(request, (err, fields, files) => { console.log("parse done"); let body = ` Document `; fs.renameSync(files.upload.path, "/tmp/test.png") response.writeHead(200, {"Content6-Type" : "text/html"}); response.write(body); response.end(); }) } const show = (response) => { console.log("request handle "show" was called"); fs.readFile("/tmp/test.png", "binary", (err, file) => { if(err) { response.writeHead(500, {"Conten-Type" : "text/plain"}); response.write(err); response.end(); }else { response.writeHead(200, {"Conten-Type" : "image/png"}); response.write(file, "binary"); response.end(); } }) } module.exports = { start: start, upload: upload, show: show }
原代碼倉(cāng)庫

learn-node/upload

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/91046.html

相關(guān)文章

  • Express系列multer

    摘要:目前覺得對(duì)我有用的是和。后者可以在本地調(diào)試頁面,對(duì)于手機(jī)頁面尤其有用。這次主要說一下,我并沒有實(shí)現(xiàn)所有的功能,只是實(shí)現(xiàn)單圖片上傳這一個(gè)功能,其他的再摸索嘍。目前就這樣,下次弄出來了多圖片上傳我再接著更新。 這兩天在看《nodejs權(quán)威指南》,這本書看了好久了,但是讀的一直不細(xì),這次才好好看了一遍。 收獲還是蠻多的,主要在于wenpack使用的一些細(xì)節(jié)問題,有點(diǎn)茅塞頓悟的體驗(yàn)吧,另外在n...

    Null 評(píng)論0 收藏0
  • JavaScript精編干貨

    摘要:老姚淺談怎么學(xué)鑒于時(shí)不時(shí),有同學(xué)私信問我老姚,下同怎么學(xué)前端的問題。擼碼聽歌,全局控制。 淺析用 js 解析 xml 的方法 由于項(xiàng)目上需要解析 xml,于是各種百度,然后自己總結(jié)了下各個(gè)主流瀏覽器解析 xml 的方法,只能是很淺顯的知道他的用法,但是還沒有深層次的研究。 裝 X - 建立自己的斗圖網(wǎng)站庫 之前加過一個(gè)斗圖群,看到很多經(jīng)典的表情,然后就收藏到了 QQ, 迫于本屌絲開不起...

    Fourierr 評(píng)論0 收藏0
  • H5學(xué)習(xí)

    摘要:為此決定自研一個(gè)富文本編輯器。本文,主要介紹如何實(shí)現(xiàn)富文本編輯器,和解決一些不同瀏覽器和設(shè)備之間的。 對(duì)ES6Generator函數(shù)的理解 Generator 函數(shù)是 ES6 提供的一種異步編程解決方案,語法行為與傳統(tǒng)函數(shù)完全不同。 JavaScript 設(shè)計(jì)模式 ② 巧用工廠模式和創(chuàng)建者模式 我為什么把他們兩個(gè)放在一起講?我覺得這兩個(gè)設(shè)計(jì)模式有相似之處,有時(shí)候會(huì)一個(gè)設(shè)計(jì)模式不能滿...

    aristark 評(píng)論0 收藏0
  • 前端每周清單第 41 期 : Node 與 Rust、OpenCV 的火花,網(wǎng)絡(luò)安全二三事

    摘要:的網(wǎng)站仍然使用有漏洞庫上周發(fā)布了開源社區(qū)安全現(xiàn)狀報(bào)告,發(fā)現(xiàn)隨著開源社區(qū)的日漸活躍,開源代碼中包含的安全漏洞以及影響的范圍也在不斷擴(kuò)大。與應(yīng)用安全是流行的服務(wù)端框架,本文即是介紹如何使用以及其他的框架來增強(qiáng)應(yīng)用的安全性。 showImg(https://segmentfault.com/img/remote/1460000012181337?w=1240&h=826); 前端每周清單專注...

    syoya 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<