这几天学习了node,刚学的时候是一脸懵懵的,node到底是什么,怎么用。
学习了之后,明白了,node其实就是除了浏览器之外的,可以让javaScript运行的一个环境,它不是一个单独的语言,它是一个让 JavaScript 运行在服务端的开发平台,是使用 事件驱动, 异步非阻塞I/O,单线程,跨平台的 JS运行环境(只能看懂跨平台)...
接下来学习了node中的REPL环境,学习了三种进入REPL环境的方式:
1:打开命令提示符(快捷键win+r,输入cmd),然后直接输入node回车就可以在里面写js代码了。
2:随便打开一个文件夹,在文件地址上面直接输入cmd进入,在输入node,可以在这个文件下运行repl环境。
3:win10电脑下,打开一个文件,在一个空白处按住shift+鼠标右键,打开Powershell窗口,可以运行REPL环境。
当然我们在写代码的时候肯定不能再这几个地方写,因为node.js代码只运行一次,然后想在运行必须重写,这样太麻烦,所以我们写node的时候,用编译器下载一个文件夹下,(推荐使用Visual Studio Code),这个编译器可以在终端中打开来运行测试代码。。一时用一时爽,一直用一直爽.......
我们学习浏览器中的js是,学的主要有Bom类 ,dom类,网络操控类....,而在node中,主要学习三大模块:核心模块,第三方模块,自定义模块。
首先学习核心模块,模块里的东西太多了,有100多万中(差不多,忘记了..),所以先从简单的学起。。。
核心模块:FS模块:
这是用来控制文件的读,写等功能的。
//引用js模块
var fs = require('fs');
//读取文件的内容
fs.readFile('读取的文件','用什么编码读取',一个回调函数(err,date){
//date,是读取文件中的内容
})
//向文件中写入内容
fs.writeFile('写入的文件',‘写入的内容’,一个回调函数(err){
console.log('写入成功');
})
如何把数据转为字符串传入xx.json文件:
//要想把数据写到json文件中必须把它转换成字符串
var str = [{}];
//把数组转换成字符串
var jstr = JSON.stringify(str);
//然后引入fs文件模块
var fs = require('fs');
//现在把转换成字符串的数据写入json文件
fs.writeFile('xx.json',jstr,function(err){
conslo.log('写入成功')
})
如何为xx.json文件添加内容:
//要添加的数据
var o ={};
//先引入fs文件模块
var fs = require('fs');
//读取xx.json,把文件中的数据转为数组,在添加内容
fs.readFile('xx.json','utf8',function(err,date){
//把json文件中的数据转为数组
var arr = JSON.parse(date) //date 是json文件的数据
//然后为数组添加内容
arr.push(o);
//再把数组转换成字符串,写入json文件中
var jsarr = JSON.stringify(arr)
//下面的写入就和上面一样了
fs.writeFile('xx.json',jsarr,function(err){
//可以加个判断,如果不报错是怎么样
if(!err){
console.log('添加成功');
}
})
})
删除和修改就不写了,大差不差.....
接下来到http核心模块,刚学理论时,我听的时满脸懵逼,听不懂,然后学完后发现,,,还是听不懂...
但是用起来就简单多了。
//导入http模块
var http = require('http');
//然后用用http模块中的方法创建一个对象
var server = http.createServer();
//为这个对象绑定一个端口
server.listen(5200,一个回调函数(){
console.log('请访问127.0.0.1:5200')
});
//这样一个服务器就创建好了,但是这是浏览器请求时,服务器没有给与反应,所以要绑定一个响应事件
server.on(‘request’,function(当前请求的所有信息(req),要发送的数据(res){
//想浏览器发送一个字符串
res.write(‘hello’);
//然后结束响应
res.end();
})
但是上面的方法只能向浏览器发送字符串,发送中文会乱码。
因此需要这个MIME类型,http中提供了一个setHeader方法。
//导入http模块
var http = require('http');
//然后用用http模块中的方法创建一个对象
var server = http.createServer();
//为这个对象绑定一个端口
server.listen(5200,一个回调函数(){
console.log('请访问127.0.0.1:5200')
});
//这样一个服务器就创建好了,但是这是浏览器请求时,服务器没有给与反应,所以要绑定一个响应事件
server.on(‘request’,function(当前请求的所有信息(req),要发送的数据(res){
//指定发送的类型
res.setHeader(‘content-Type’,‘text/plain;charset=utf-8’);
//响应html页面就用res.setHeader(‘content-Type’,‘text/html;charset=utf-8’);
//想浏览器发送一个字符串
res.write(‘你好,浏览器and我们导师真帅’);
//然后结束响应
res.end();
})
就先写这俩个核心模块吧............