上面代码执行完后,就没有变化,因为根本没有xxx这样的目录。
======================================================================================
如果遇到这种在错误,eaddrinuse(address in use)意思就是端口被占用。
=============================================================================
在其他的html文件上面设置了图片,在服务器端是访问不到的!因为服务器端需要请求图片位置,所以我们要在服务器端给图片写一个传递图片的命令。
图片类型对应的Content-Type,可以去开源中国查看一下。
修改一下06.demo.js文件:
//加载http模块
var http = require(‘http’);
//加载fs模块
var fs = require(‘fs’);
//加载path模块
var path = require(‘path’)
http.createServer(function(req,res){
if (req.url === ‘/’ || req.url === ‘/index’) {
//读取index.html 文件
//这里读取不需要使用utf8来转换,因为将data传到浏览器,也是需要Buffer二进制码的形式。
//当Buffer数据传到浏览器端后,如果index.html中设置了utf-8,浏览器就会识别相关内容,不会乱码。
fs.readFile(path.join(__dirname,‘demo’,‘index.html’),function(err,data){
if (err) {
throw err;
}
//将读取到的index.html中的内容直接发送给浏览器。
res.end(data);
});
}else if(req.url === ‘/login’){
fs.readFile(path.join(__dirname,‘demo’,‘login.html’),function(err,data){
if (err) {
throw err;
}
res.end(data);
});
}else if(req.url === ‘/register’){
fs.readFile(path.join(__dirname,‘demo’,‘register.html’),function(err,data){
if (err) {
throw err;
}
res.end(data);
});
}else if(req.url === ‘/images/a.jpg’){
//这里就是请求images命令下的a.jpg图片
fs.readFile(path.join(__dirname,‘images’,‘a.jpg’),function(err,data){
if (err) {
throw err;
}
//这里对于不同的图片类型对应不同的type,https://tool.oschina.net/commons,查看一下对应的图片类型。
res.setHeader(‘Content-Type’,‘image/jpeg’);
res.end(data);
});
}else {
fs.readFile(path.join(__dirname,‘demo’,‘error(404).html’),function(err,data){
if (err) {
throw err;
}
res.end(data);
});
}
}).listen(1234,function(){
//这里端口可以随便修改
console.log(‘服务器启动了,请访问:http://localhost:1234’);
});
在上面再添加了一个关于images/a.jpg路径的else if语句,这样在访问之前的html文件时候,就可以继续访问图片了。看图下:在index中加入了一个图片。
注意:这里Content-Type对于不同的图片类型对应不同的类型,查看一下对应的图片类型。
==============================================================================
和传递图片一样,这里还是使用添加else if语句来添加css文件,传递给浏览器端。
再次修改06.demo.js文件:
//加载http模块
var http = require(‘http’);
//加载fs模块
var fs = require(‘fs’);
//加载path模块
var path = require(‘path’)
http.createServer(function(req,res){
if (req.url === ‘/’ || req.url === ‘/index’) {
//读取index.html 文件
//这里读取不需要使用utf8来转换,因为将data传到浏览器,也是需要Buffer二进制码的形式。
//当Buffer数据传到浏览器端后,如果index.html中设置了utf-8,浏览器就会识别相关内容,不会乱码。
fs.readFile(path.join(__dirname,‘demo’,‘index.html’),function(err,data){
if (err) {
throw err;
}
//将读取到的index.html中的内容直接发送给浏览器。
res.end(data);
});
}else if(req.url === ‘/login’){
fs.readFile(path.join(__dirname,‘demo’,‘login.html’),function(err,data){
if (err) {
throw err;
}
res.end(data);
});
}else if(req.url === ‘/register’){
fs.readFile(path.join(__dirname,‘demo’,‘register.html’),function(err,data){
if (err) {
throw err;
}
res.end(data);
});
}else if(req.url === ‘/images/a.jpg’){
//这里就是请求images命令下的a.jpg图片
fs.readFile(path.join(__dirname,‘images’,‘a.jpg’),function(err,data){
if (err) {
throw err;
}
//这里对于不同的图片类型对应不同的type,https://tool.oschina.net/commons,查看一下对应的图片类型。
res.setHeader(‘Content-Type’,‘image/jpeg’);
res.end(data);
});
}else if(req.url === ‘/css/index.css’){
//设置需要传递的css内容
fs.readFile(path.join(__dirname,‘css’,‘index.css’),function(err,data){
if (err) {
throw err;
}
//设置响应头为text/css,因为这里是css文件。
res.setHeader(‘Content-Type’,‘text/css’);
res.end(data);
});
}else {
fs.readFile(path.join(__dirname,‘demo’,‘error(404).html’),function(err,data){
if (err) {
throw err;
}
res.end(data);
});
}
}).listen(1234,function(){
//这里端口可以随便修改
console.log(‘服务器启动了,请访问:http://localhost:1234’);
});
对应css路径和imaga图片一样,还有index.html文件添加css文件。如图下:
====================================================================================
上面浏览器端每发送一个请求,无论是css还是图片,html网页,都重新创建else if()语句来查找文件内容。
在解决上面的代码冗余,就要用到了mime模块,它不是node.js模块的内容,而是属于第三方的,进入mime模块查看如何安装和使用。
注意:
nvm安装的时候大体上分为了node和npm,我在运行的时候,发现只有node没有npm!这应该是安装的时候出了问题,我是直接去官方下载了原先的版本,放到nvm显示node版本目录下,就可以了。
查看了mime的使用和安装,这里使用npm来安装mime
npm install mime
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
常用的JavaScript设计模式
-
单体模式
-
工厂模式
-
例模式
函数
-
函数的定义
-
局部变量和全局变量
-
返回值
-
匿名函数
-
自运行函数
-
闭包
NDM4MQ==,size_16,color_FFFFFF,t_70)
函数
-
函数的定义
-
局部变量和全局变量
-
返回值
-
匿名函数
-
自运行函数
-
闭包