html5 node js canvas,Node.js教程:Node.js和 HTML5-Canvas 结合实现截图上传交互

主页代码: Index.jsvar server = require("./server");

var route  = require("./route");

server.start(route.route);

server代码:

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

function start(route, handle) {

function onRequest(request, response) {

var postData = "";

var pathname = url.parse(request.url).pathname;

console.log("Request for " + pathname + " received.");

request.setEncoding("utf8");

request.addListener("data", function(postDataChunk) {

postData += postDataChunk;

console.log("Received POST data chunk '"+

postDataChunk + "'.");

});

request.addListener("end", function() {

route(pathname, response, postData);

});

}

http.createServer(onRequest).listen(8888);

console.log("Server has started.");

}

exports.start = start;

route.js 代码:

function route(pathname,response,postData){

var requestHandler=require("./requestHandler");

if (typeof requestHandler.handle[pathname] === 'function') {

requestHandler.handle[pathname](response,postData);

response.end(); 7      }

else {

console.log("No request handler found for " +pathname);

response.writeHead(404, {"Content-Type": "text/plain"});

response.write("404 Not found");

}

}

exports.route=route;

requestHandler.js 代码:function start(response,postData) {

console.log("Request handler 'start' was called.");

response.writeHead(200, {"Content-Type": "text/html"});

var body = ''+

'

'+

'

'charset=UTF-8" />'+

''+

'

'+

''+''+''

+''+

'';

response.write(body);

response.end();

}

function upload(response,postData) {

response.writeHead(200, {"Content-Type": "text/plain"});

var fs = require('fs');

var base64Data = postData.replace(/^data:image\/\w+;base64,/, "");

var dataBuffer = new Buffer(base64Data, 'base64');

console.log("Request handler 'upload' was called.");

fs.writeFile("out.png", dataBuffer, function(err) {

});

response.write("hello");

response.end();

}

var handle=[];

handle['/start']=start;

handle['/upload']=upload;

handle['/']=start;

exports.handle=handle;

其中,处理base64的图片数据用到了这个链接的技术: 处理base64数据

程序运行结果 :

浏览器:

7bbde0f4a4782d1092a0d34c60a38f62.png

服务器目录:

30b25c30fda1938ed2586417b21d50d8.png

本文由职坐标整理发布,更多相关知识,请关注职坐标WEB前端Node.js频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值