js json制表符报错_关于Node.js

这几天学习了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('添加成功');
}
})
})

删除和修改就不写了,大差不差.....

6135e9458cfe574d30bb319378bc8aa4.png

918a07fb7c42fcded321013d60533cd6.png

接下来到http核心模块,刚学理论时,我听的时满脸懵逼,听不懂,然后学完后发现,,,还是听不懂...

b770fb19a7e7134080912ec4bbad478d.png

4cf2a9318caebe266d72b9882a4472b9.png

但是用起来就简单多了。

//导入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();
})

但是上面的方法只能向浏览器发送字符串,发送中文会乱码。

cf05279cb916c932ea8ee9db195ecf51.png

因此需要这个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();
})

就先写这俩个核心模块吧............

fa160e32d1d097c4ccfd1be3da6c067b.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值