nodejs -- fs模块 ---> readFile 函数 1) fs.readFile(filename, "binary", function(error, file) 2) response.write(file, "binary");
一:代码:
1.1 入口文件: index.js
var server = require('./server');
var router = require("./router");
var requestHandlers = require("./requestHandlers");
var handle = {};
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
handle["/show"] = requestHandlers.show;
server.start(router.route, handle);
1.2 服务器文件: server.js
var http = require("http");
var url = require("url");
function start(route, handle){
http.createServer(function(request, response) {
// console.log(url.parse(request.url));
// console.log(url.parse(request.url).query);
var pathname = url.parse(request.url).pathname;
console.log('request for [' +pathname+ "] received.");
//接收请求数据:
var postData = "";
request.setEncoding("utf8");
request.on("data", function(chunk){
postData += chunk;
console.log("Received POST data chunk '" +chunk+"'");
});
request.on("end", function(){
route(handle, pathname, response, postData);
});
}).listen(8888);
console.log("server has started.");
}
exports.start = start;
1.3 路由文件: router.js
function route(handle, pathname, response, postData){
console.log("About to route a request for " +pathname);
if (typeof handle[pathname] === 'function') {
//调用函数:
handle[pathname](response, postData);
} else{
console.log("No request handler found for " + pathname);
response.writeHead(404, {"Content-Type": "text/plain"});
response.write("404 Not found");
response.end();
}
}
exports.route = route;
1.4 请求处理程序文件: requestHandles.js
var querystring = require("querystring");
var fs = require("fs");
function start(response, postData) {
console.log("Request handler 'start' was called.");
var body = '<html>'+
'<head>'+
'<meta http-equiv="Content-Type" content="text/html; '+
'charset=UTF-8" />'+
'</head>'+
'<body>'+
'<form action="/upload" method="post">'+
'<input type="text" value="" name="userName"/>'+
'<textarea name="text" rows="20" cols="60"></textarea>'+
'<input type="submit" value="Submit text" />'+
'</form>'+
'</body>'+
'</html>';
response.writeHead(200, {"Content-Type": "text/html"});
response.write(body);
response.end();
}
function upload(response, postData) {
console.log("Request handler 'upload' was called.");
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("You've sent allData: " +querystring.parse(postData)+ "\n");
response.write("You've sent userName: " +querystring.parse(postData).userName+ "\n");
response.write("You've sent text: " +querystring.parse(postData).text+ "\n");
response.end();
}
function show(response, postData){
console.log("Request handle 'show' was called.");
39 var filename = "C:/Users/dc5yy/Desktop/图片_1/06.jpg";
40 fs.readFile(filename, "binary", function(error, file){
if (error) {
42 response.writeHead(500, {"Content-Type": "text/plain"});
response.write(error + "\n");
response.end();
} else{
46 response.writeHead(200, {"Content-Type": "image/jpg"});
47 response.write(file, "binary");
response.end();
}
});
}
exports.start = start;
exports.upload = upload;
exports.show = show;
1.5 结果:
1)要读取的图片 地址:
var filename = "C:/Users/dc5yy/Desktop/图片_1/06.jpg";
2) 启动服务器:

3) http访问:

1.6 参考链接:
nodejs -- fs模块 ---> readFile 函数 1) fs.readFile(filename, "binary", function(error, file) 2) response.write(file, "binary");的更多相关文章
- nodejs模块——fs模块
fs模块用于对系统文件及目录进行读写操作. 一.同步和异步 使用require('fs')载入fs模块,模块中所有方法都有同步和异步两种形式. 异步方法中回调函数的第一个参数总是留给异常参数(exce ...
- node.js http模块和fs模块上机实验·
httpserver const httpserver = require('http'); var server = httpserver.createServer(function (req,re ...
- nodejs读取文件时相对路径的正确写法(使用fs模块)
在开发nodejs中,我们往往需要读取文件或者写入文件,最常用的模块就是fs核心模块.一个最简单的写入文件的代码如下(暂时不考虑回调函数): fs.readFile("./test.txt& ...
- [Nodejs] node的fs模块
fs 模块 Node.js 提供一组类似 UNIX(POSIX)标准的文件操作 API. Node 导入文件系统模块(fs).Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如 ...
- nodejs学习笔记一( sublime、atom开发环境,http模块,fs模块的初识)
http服务 let server = http.createServer(function(req,res){ }); 监听: server.listen(8080); re ...
- nodejs之fs模块
nodejs中的file system文件系统模块 1.文件的读取readFile //引入文件系统模块 const fs = require('fs'); //文件读取是异步操作 fs.readFi ...
- nodejs入门API之fs模块
fs模块下的类与FS常量 fs模块下的主要方法 fs的Promise API与FileHandle类 一.fs模块下的类 1.1 fs.Dir:表示目录流的类,由 fs.opendir().fs.op ...
- nodejs之fs 模块
1.fs模块函数 * .fs.stat 检测是文件还是目录 * .fs.mkdir 创建目录 * .fs.writeFile 创建写入文件 * .fs.appendFile 追加文件 * .fs.re ...
- nodejs中的fs模块中的方法
nodejs中的fs模块 引入模块 const fs =require("fs") 检测文件是否存在fs.stat(path,callback) fs.stat("./n ...
随机推荐
- Class_fifth
1,统计文件夹的文件总数 代码: package Class_fifth; import java.io.File; public class Statistics { public static v ...
- JavaScript判断对象有没有定义
if ( typeof(callbackfun) != "undefined" ) { callbackfun(); }
- 关于django1.8版本的静态文件配置
环境:Python3.5.4,django1.8.1. 在页面使用js时,总是提示404找不到js文件. 于是,看看了settings文件 好像也没什么毛病.导入的方式也换了很多种,总是不行,于是只好 ...
- bzoj4361 isn(树状数组优化dp+容斥)
4361: isn Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 938 Solved: 485[Submit][Status][Discuss] ...
- Python 互斥锁
互斥锁Mutex的使用 多个线程处理共享数据,数据会出现问题: 2.7之前每100指令切换一次GIL锁,线程就会sleep,线程会把前100条处理指令存放在CPU缓存内,切换GIL锁后放入另外一个线程 ...
- react的dva框架初试
使用背景:迫不得已!!(自己入职是以vue技术入职的,说是马上vue项目就来了,让我负责这个项目的前端.但是入职后就让我下了现在这个项目看下,然后就顺理成章的帮忙进行开发了,其实自己一直想要做reac ...
- redux-thunk的理解
问题:1.redux-thunk要解决什么问题? 要解决异步请求问题,Action发出以后,Reducer立即算出State,这叫做同步:Action发出以后,过一段时间再执行 Reducer,这就叫 ...
- Hadoop数据类型
hadoop包装了java的基本数据类型使他们实现以上的接口而且给予实现细节,这些类都实现了WritableComparable接口,能够在不同的hadoop节点之间毫无障碍的传输了.
- idea基于hibernate生成的Entitle对象,会忽略外键属性
需要自己手动添加 如 private String cgcode; @Basic @Column(name = "cgcode") public String getCgcode( ...
- Centos 6.8安装ideaIU-2017.2.6-no-jdk
参考资料: (一)https://www.jetbrains.com/help/idea/2017.2/intellij-idea-help.pdf (链接: https://pan.baidu.c ...