node小结

模块作用域
// 当前文件所在目录
console.log('dirnmae='+__dirname);
// 文件地址
console.log('filename'+__filename);

node模块

              	 //1.process模块
// 操作系统信息
console.log(process.arch);
// 数组 第一个值代表的是node安装地址  
//第二个值当前文件地址
console.log(process.argv);

              	  //2.os 模块
const os=require("os");
console.log("hello"+os.EOL +  "itcast");//换行
console.log("主机名:"+os.hostname());
console.log("操作系统名"+os.type());
console.log("操作系统平台"+os.platform());
console.log("内存总量"+os.totalmem()+"字节")
console.log("空闲内存"+os.freemem()+"字节");

             	 //3.path 模块
const path=require('path');
// path.extname得到的是文件后缀
console.log(path.extname(__filename));
// 如果是一个目录,没有后缀。
console.log(path.extname(__dirname));

// path.dirname获取的是当前文件所在的目录
var paths="E:/download/data/db";
console.log(path.dirname(paths));//获取到当前文件
console.log(path.basename(paths));//获取最后一层
console.log(path.dirname(paths));//获取上一层
// 解析地址,把字符串转化为对象
console.log(path.parse(__filename))
var parse=path.parse(__filename);
// format解析地址 把对象转化为字符串
var format=path.format(parse);
console.log(format);
// path.join()拼接路径并且自动解析
           // ..向上一级
console.log(path.join(__dirname,'my','txt','..','..'));
//当前目录加上my 加上txt然后返回上级 ,放回上级
// path.relative(from,to)从第一个路径如何找到第二个路径
console.log(path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb'))

                //4.fs
const fs=require('fs');
const path=require('path');
// 创建文件夹     在当前文件目录下创建文件
 fs.mkdir(path.join(__dirname,'my'),(err)=>{
 	if(err) throw err;
 	console.log('文件夹创建成功')
 })
// 删除文件夹  删除当前文件目录下的my文件
 fs.rmdir(('./my'),(err)=>{
 	if(err) throw err;
 })

// 读文件夹/目录 fs.readdir(文件地址,成功以后的回掉函数)
 fs.readdir(__dirname,(err,files)=>{
 	if(err) throw err;
 	console.log(files);
 })

// 检测文件状态,检测文件是目录还是文件。
// fs.stat(文件地址,(err,stats)=>{判断状态})
fs.stat(__filename,(err,stats)=>{
// stats.isDirectory()检测是否是文件夹 true/false
// stats.isFile()检测是否是文件 true/false
	console.log(stats.isDirectory());
})

// 读取当前目录,判断当前目录下每一个文件的状态。
fs.readdir(__dirname,(err,files)=>{
	if(err) throw err;
	console.log(files)
	files.forEach((item,index)=>{
		fs.stat(path.join(__dirname,item),(err,stats)=>{

			if(stats.isDirectory()){
				console.log(item+'是一个目录')
			}else{
				console.log(item+'是一个文件夹')
			}
		})
	})
})                
// 写文件 fs.writeFile('文件名字',数据,(err)=>{})
 fs.writeFile('my.txt','hello',(err)=>{
 	if(err) throw err;
 })

// 删除文件 fs.unlink('文件名字',(err)=>{})
 fs.unlink('my.txt',(err)=>{
 	if(err) throw err;
 })

                  //5 http
// 引入模块
const http=require('http');
// 创建服务器
let server=http.createServer((req,res)=>{
	res.end('404');
})
//监听端口号 端口号可以任意设置,只要不冲突
server.listen('8989')

在网页上读取项目

const http=require('http');
const fs=require('fs');
const path=require('path');
let server=http.createServer((req,res)=>{
	if(req.url=='/favicon.ico')   return;
	console.log(req.url);
	// a.startsWisth('b')检测a是否以b字符串开始
	// www一般放置的是静态资源 文件的首页需要是index
	// 刚开始输入路径的时候,需要输入全称 music/index.html
	if(req.url.startsWith('/music')){
	fs.readFile(path.join(__dirname,'www',req.url),(err,data)=>{
			if(err) throw err;
			res.end(data);//data 返回的数据
		})	
	}else if(req.url.startsWith('/login')){
	fs.readFile(path.join(__dirname,'www',req.url),(err,data)=>{
			if(err) throw err;
			res.end(data)
		})
	}else{
		res.end('404')
	}
})

server.listen('8989');

通过ajax 在网页上获取数据
get请求/post请求

const http=require('http');
const fs=require('fs');
const path=require('path');
const querystring=require('querystring')
const url=require('url')

let server=http.createServer((req,res)=>{
	if(req.url=='/favicon.ico') return;
	if(req.url.startsWith('/login')){
fs.readFile(path.join(__dirname,'www',req.url),(err,data)=>{
			if(err) throw err;
			res.end(data)
		})
	}else if(req.url.startsWith('/submit')){
//get 请求
	if(url.parse(req.url,true).query.user){
let user=url.parse(req.url,true).query.user;
let password=url.parse(req.url,true).query.password;
res.end(`user is ${user} password is${password}`)
		}else{
	// post请求的数据是一段段发送的
			var allData='';
	// data相当于是一个事件 监听客户端发送过来的数据
	// post请求发送过来的数据是一段一段的
			req.on('data',(chunk)=>{
				console.log(chunk.toString());
				// chunk代表的是前端发送过来的数据
				allData+=chunk
			})
	// end是一个事件,代表数据接收完毕
			req.on('end',()=>{
// allData得到的数据是k=v&k=v的形式 使用querystring转化
	// querystring可以把类似k=v&k=v转化为对象的形式		
	console.log(querystring.parse(allData))
				res.end(allData)
			})
		}
	}else if(req.url.startsWith('/music')){
		fs.readFile(path.join(__dirname,'www',req.url),(err,data)=>{
			if(err) throw err;
			res.end(data)
		})
	}
	else{
		res.end('404')
	}
})	
server.listen('8989');

express 模块

文件新建好后
第一步初始化 npm init -y
第二步: 下载express npm install express -S

// 第一步:引入框架
const express =require('express');
// 创建服务器
const app =express();
// 路径以login开始即可
app.use('/login',(req,res,next)=>{
	// res.send('login');
	console.log('login');
	// 如果没有next 前台结束不了响应
	// next中间件 有了next以后,代码可以继续往下执行
	// send和next在一个响应里面不要同时存在
	// next()
	res.send('jldsjfljd')
})
// 处理以/开始的路由  处理/的路由一般放置在最后面
app.use('/',(req,res)=>{
	// express里面,结束响应使用的是send,执行完以后不再往下执行代码,结束前端响应
	// send需要字符串,如果书写其余参数,会有警告前端响应不了。
	res.send('123');
})
// 添加监听端口号
app.listen('8989')

1.readfile

const express=require('express');
const app=express();
// 会去www目录下找到music文件夹,把music文件夹内部的index.html作为主页面
// 读取静态资源的时候,路由必须是/
// express.static('读取静态资源的路径')
// 前端路径要完全匹配。才可以执行代码
app.use('/',express.static('./www/music'));
// 路径必须是login才可以
app.use('/login',express.static('./www/login'));
app.use('/',(req,res)=>{
	res.send('您输入的路径不存在,请检查路径');
})
app.listen('8989');

get和post

const express=require('express');
const app=express();
// 处理post参数的模块
const bodyParser=require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false })

app.use('/',express.static('./www/login'))
// app.post()专门用来处理post请求
app.post('/submit',urlencodedParser,(req,res)=>{
	// req.body获取的是post请求的参数
	console.log(req.body);
	res.send(req.body.user);
})
// 处理get请求
app.get('/submit',(req,res)=>{
	// get请求的参数在url内部  req.query获取get请求参数
	console.log(req.query);
	res.send(`您输入的用户名是${req.query.user}`)
})

app.listen('8989','xxx.xxx.x.xxx');
//在此处输入自己电脑ip地址
// http://xxx.xxx.x.xxx:8989/ 
//就能以自己电脑为服务器访问   
//这个网址也可以以在手机上访问

post请求

post请求需要依赖专门的模块
第一步:下载模块 npm install body-parser -S
第二步:在页面中引入
const bodyParser=require(‘body-parser’);
var urlencodedParser = bodyParser.urlencoded({ extended: false })
第三步:在post请求的第二个参数书写urlencodedParser刚刚解析得到的参数
具体看上面的代码

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值