http模块:
var http = require('http');
//开启一个服务器,这是一个异步函数。事实上node中基本所有函数都是异步的。
var server = http.createServer(function (req, res){
//req表示request就是用户的请求
//res表示response就是服务器的响应
console.log('创建服务器成功')
res.end("Hello World");
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');
执行node 1.js,‘创建服务器成功’并没有在控制台输出
当访问http://localhost:8080/时,页面显示Hello World,控制台的结果:
Node.js没有根目录,他不用建设在任何服务器软件之上
var http = require('http');
//引入模块fs,这个模块可以读取服务器上硬盘上的文件,写入文件等
var fs = require("fs");
//开启一个服务器,这是一个异步函数。事实上node中基本所有函数都是异步的。
var server = http.createServer(function (req, res){
//fs模块有一个方法叫做readFile,可以异步读取文件内容
//这个函数是一个异步函数,所以读到的内容,通过回调函数返回
//系统会自动帮我们注入两个参数,第一个实参是错误信息,如果没有错误
//第二个实参就是文件的内容
fs.readFile("./pages/index.html",function(err,data){
//读取的是信息流,是Buffer缓冲的二进制的东西,调用toString()
console.log(data.toString());
});
//req表示request就是用户的请求
//res表示response就是服务器的响应
console.log('创建服务器成功')
res.end("Hello World");
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');
var http = require('http');
//引入模块fs,这个模块可以读取服务器上硬盘上的文件,写入文件等
var fs = require("fs");
//开启一个服务器,这是一个异步函数。事实上node中基本所有函数都是异步的。
var server = http.createServer(function (req, res){
//fs模块有一个方法叫做readFile,可以异步读取文件内容
//这个函数是一个异步函数,所以读到的内容,通过回调函数返回
//系统会自动帮我们注入两个参数,第一个实参是错误信息,如果没有错误
//第二个实参就是文件的内容
fs.readFile("./pages/index.html",function(err,data){
//读取的是信息流,是Buffer缓冲的二进制的东西,调用toString()
res.end(data.toString());
});
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');
访问http://127.0.0.1:8080/显示的页面是:
但是index.html在F:\mynode\pages路径下,访问http://127.0.0.1:8080/中并没有相关的路径信息,所以说Node.js没有根目录。
现在Node.js监听8080端口上所有路径,http://127.0.0.1:8080/...后面写任何东西都能得到index.html的页面
var http = require('http');
var fs = require("fs");
var server = http.createServer(function (req, res){
console.log(req.url);
res.end("hello");
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');
req.url表示请求的路径:
访问http://127.0.0.1:8080/abc,
浏览器每次发起请求,都会同时请求一次favicon.ico
index.html内容:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style>
.box{
width: 200px;
height: 200px;
background-color: red;
}
</style>
<title></title>
</head>
<body>
<div class="box"></div>
</body>
</html>
index2.html内容:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style>
.box{
width: 200px;
height: 200px;
background-color: yellow;
}
</style>
<title></title>
</head>
<body>
<div class="box"></div>
</body>
</html>
var http = require('http');
var fs = require("fs");
var server = http.createServer(function (req, res){
//设置UTF-8
res.setHeader("Content-Type","text/html;charset=UTF-8");
//req表示用户的访问信息,url属性表示访问路径
//写一个顶层路由,就是根据用户访问了什么做不同的事情
switch(req.url){
case "/a" :
fs.readFile("./pages/index.html",function(err,data){
res.end(data.toString());
});
break;
case "/b" :
fs.readFile("./pages/index2.html",function(err,data){
res.end(data.toString());
});
break;
default :
res.end("对不起,不存在该页面")
break;
}
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');
http://127.0.0.1:8080/a
http://127.0.0.1:8080/b
http://127.0.0.1:8080/c
网页中插入图片:虽然图片和index.html在同一个文件夹下,但是图片的src写的是路由地址,而不是物理地址。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style>
.box{
width: 200px;
height: 200px;
background-color: red;
}
</style>
<title></title>
</head>
<body>
<div class="box"></div>
<img src="pic1.jpg"/>
</body>
</html>
var http = require('http');
var fs = require("fs");
var server = http.createServer(function (req, res){
//设置UTF-8
res.setHeader("Content-Type","text/html;charset=UTF-8");
//req表示用户的访问信息,url属性表示访问路径
//写一个顶层路由,就是根据用户访问了什么做不同的事情
switch(req.url){
case "/a" :
fs.readFile("./pages/index.html",function(err,data){
res.end(data.toString());
});
break;
case "/b" :
fs.readFile("./pages/index2.html",function(err,data){
res.end(data.toString());
});
break;
case "/pic1.jpg" :
fs.readFile("./pages/animal.jpg",function(err,data){
//图片不需要toString()
res.setHeader("Content-Type","image/jpg")
res.end(data);
});
break;
default :
res.end("对不起,不存在该页面")
break;
}
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');