摘要:此為看完入門寫的小自己實(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 = ``; 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
learn-node/upload
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/91046.html
摘要:目前覺得對(duì)我有用的是和。后者可以在本地調(diào)試頁面,對(duì)于手機(jī)頁面尤其有用。這次主要說一下,我并沒有實(shí)現(xiàn)所有的功能,只是實(shí)現(xiàn)單圖片上傳這一個(gè)功能,其他的再摸索嘍。目前就這樣,下次弄出來了多圖片上傳我再接著更新。 這兩天在看《nodejs權(quán)威指南》,這本書看了好久了,但是讀的一直不細(xì),這次才好好看了一遍。 收獲還是蠻多的,主要在于wenpack使用的一些細(xì)節(jié)問題,有點(diǎn)茅塞頓悟的體驗(yàn)吧,另外在n...
摘要:老姚淺談怎么學(xué)鑒于時(shí)不時(shí),有同學(xué)私信問我老姚,下同怎么學(xué)前端的問題。擼碼聽歌,全局控制。 淺析用 js 解析 xml 的方法 由于項(xiàng)目上需要解析 xml,于是各種百度,然后自己總結(jié)了下各個(gè)主流瀏覽器解析 xml 的方法,只能是很淺顯的知道他的用法,但是還沒有深層次的研究。 裝 X - 建立自己的斗圖網(wǎng)站庫 之前加過一個(gè)斗圖群,看到很多經(jīng)典的表情,然后就收藏到了 QQ, 迫于本屌絲開不起...
摘要:為此決定自研一個(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ì)模式不能滿...
摘要:的網(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); 前端每周清單專注...
閱讀 1181·2021-11-23 10:10
閱讀 1517·2021-09-30 09:47
閱讀 898·2021-09-27 14:02
閱讀 2972·2019-08-30 15:45
閱讀 3023·2019-08-30 14:11
閱讀 3616·2019-08-29 14:05
閱讀 1824·2019-08-29 13:51
閱讀 2209·2019-08-29 11:33