Node.js
官网
http://nodejs.cn/learn/how-much-javascript-do-you-need-to-know-to-use-nodejs
npx
Node 自带 npm 模块,所以可以直接使用 npx 命令。万一不能用,就要手动安装一下。
$ npm install -g npx
使用NPX可以首选本地环境,如果全局没有这个包,使用npm会报错。
执行
npx http-server
会出现本地服务器
Available on:
http://169.254.83.131:8080
http://169.254.107.178:8080
http://192.168.0.107:8080
http://127.0.0.1:8080
Hit CTRL-C to stop the server
使用本地服务器访问不是本地服务的请求会报跨域的错。(安全沙箱)
但是在Node.js端访问,就不会有安全沙箱的限制。
node写文件操做在执行时,一定要进入文件夹内,否则会报错。报Error: Cannot find module 'D:\实验室\vs作品\learn\index.js'
D:\实验室\vs作品\learn>cd 02-fs
D:\实验室\vs作品\learn\02-fs>node index.js
文件创建成功
写入文件操作代码
const fs = require("fs")
fs.writeFile('./log.txt', 'hello', (err, data) => {
if (err) {;
} else {
console.log("文件创建成功");
}
})
第一个参数为要写的文件名及位置(相对位置)
第二个参数是要写的内容
第三个参数为回调函数
javascript通过node.js可以后端开发
在Node.js环境中执行JavaScript代码步骤
1.打开终端
2.进入存放javascript文件的路径 powershell
3.输入 node 要执行的js文件路径
上箭头可以切换命令
tab可以自动补全命令
esc可以快速清空当前已输入的命令
输入cls命令,可以清空终端
读取文件
//使用Node.js读取文件
//1.第一步引入fs模块
const fs = require('fs')
//2.调用fs.readFile()方法读取文件
//参数1.读取文件的路径
// 参数2.读取文件的编码格式 ,一般指定UTF-8
// 参数3.回调函数,拿取读取失败和成功的结果 err dataStr
fs.readFile('./02-fs/log.txt', 'utf8', function(err, dataStr) {
//打印失败结果
//如果读取成功,err为null
//如果读取失败,err为错误对象
console.log(err);
console.log("______________");
//打印成功结果
console.log(dataStr);
})
D:\实验室\vs作品\learn_node>node 11111.js
null
______________
hello
D:\实验室\vs作品\learn_node>node 11111.js
[Error: ENOENT: no such file or directory, open 'D:\实验室\vs作品\learn_node\02-fs\log1.txt'] {
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'D:\\实验室\\vs作品\\learn_node\\02-fs\\log1.txt'
}
______________
undefined
写入文件
//引入fs模块
const fs = require('fs');
//调用fs,writeFile()方法,写入文件内容
// 参数1.表示文件将要存放的路径
// 参数2.表示要写入的内容
// 参数3.回调函数
fs.writeFile('./02-fs/2.txt', 'abc', function(err) {
//写入成功 err为null
console.log("写入成功" + err);
})
文件读写使用方法
//引入fs模块
const fs = require('fs')
//2.调用fs.readFile() ,读取文件的内容
fs.readFile('./成绩.txt', 'utf8', function(err, dataStr) {
//3.判断文件是否读取成功
if (err) {
// err为null时,相当于为假
return console.log("文件读取失败!" + err.message);
}
console.log('文件读取成功' + dataStr);
//读取成功后对数据进行操作
// 1.先把数据按空格进行分隔
const arrold = dataStr.split(' ')
console.log(arrold);
//循环分隔后的数组,对每一项数据,进行字符串替换操作
const arrNew = [];
arrold.forEach(item => {
arrNew.push(item.replace('=', ':'))
})
console.log(arrNew);
//把新数组中的每一项,进行合并操作,得到一个新的字符串
const NewStr = arrNew.join('\r\n')
console.log(NewStr);
//5.调用fs.writeFile()方法,把处理好的数据写入文件中
fs.writeFile('./成绩-ok.txt', NewStr, function(err) {
if (err) {
return console.log("成绩写入失败");
}
console.log("成绩写入成功");
})
})
动态路径拼接问题
用__dirname代替…/
const fs = require('fs');
fs.readFile(__dirname + '/02-fs/2.txt', 'utf-8', function(err, dataStr) {
if (err) {
console.log("读取失败" + err);
}
console.log(dataStr + "读取成功");
})
path路径模块
const fs = require('fs');
const path = require('path')
//利用path.join()方法进行路径拼接,不在使用+号进行拼接
//path.join()进行拼接,多一个点或者/都无所谓,但../会消去上一级目录
fs.readFile(path.join(__dirname, '/02-fs/2.txt'), 'utf-8', function(err, dataStr) {
if (err) {
console.log("读取失败" + err);
}
console.log(dataStr + "读取成功");
})
path.join()进行拼接,多一个点或者/都无所谓,但…/会消去上一级目录