connect
Connect是一个基于http服务器的工具集,他提供了一种新的组织代码的方式来与请求.响应对象进行交互,称为中间件(middleware)
我们创建一个目录
通过html简单的展示一下这些图片
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>website</h1>
<img src="images/1-1.jpg">
<img src="images/1-2.jpg">
<img src="images/1-3.jpg">
<img src="images/1-4.jpg">
</body>
</html>
为了展示Connect为HTTP应用提供了遍历,这里会介绍如何使用原生的http api写一个简单的网站,之后再用connect api 完成同样的事情
使用http构建
const http = require('http');
const fs = require('fs');
/**
* 创建服务器
*/
let server = http.createServer(function (req, res) {
//检查请求方法并且url以images开始,.jap结束
if ('GET' === req.method && '/images' === req.url.substr(0, 7) && '.jpg' === req.url.substr(-4)) {
//用stat检查文件是否存在,这里使用__dirname来获取当前服务器所在路径
//这里不用同步的fs.stat(statSync)否则处理磁盘文件时,会阻塞其他的请求处理
fs.stat(__dirname + req.url, function (err, stat) {
if (err || !stat.isFile()) {
res.writeHeader(404);
res.end('没找到东西');
return
}
serve(__dirname+req.url,'application/jpg')
});
// 如果是'/'响应index.html 并调用serve函数
}else if('GET'===req.method && '/' === req.url){
serve(__dirname + '/index.html', 'text/html');
// 啥都不是响应404结果
} else{
res.writeHeader(404);
res.end("啥都没有,走开")
}
function serve(path,type){
res.writeHeader(200,{'Content-Type': type});
fs.createReadStream(path).pipe(res);
}
});
/**
* 监听
*/
server.listen(3000);
实际作用就是把这个index网页利用服务器的方式打开 = =!
好吧 我不是很懂....
通过Content来实现
- 接下来这个例子是要实现一个网站,该例子展示了创建网站时的一些常见的任务
- 托管静态文件
- 处理错误以及岁患或者不存在的url
- 处理不同类型的请求
- 基于http模块api之上的Connect,提供了一些工具方法能够让这些重复性的处理便于实现,以至于让开发者能够更加专注在应用本身
创建模块
都懂的
不过需要添加一个 npm install --save connect命令
书里介绍的是connct 1.8.7 直接下载是3.6.6 大家注意记得改过来 方法不同了
下面的东西都是新的api 在另外的教程或者是别的大神写出来的 作为经验 我进行了练习 书中的版本已经太旧了
const connect = require('connect');
const app = connect();
app.use(function (req, res) {
res.end('hello world')
});
app.listen(3000);
暂时写不下去了,书中都是几年前的版本,下了旧版本有些API还是报错,执行不了,能力不足,先行跳过