Node.JS学习笔记
Node.JS笔记
1.Node.JS是什么?
Node.js 就是运行在服务端的 JavaScript
- 运行在浏览器上的js代码就是前端开发
- 运行在Node.js环境上的就是后端开发
学习路径
- js基础语法+常用内置api接口(fs、path、http)+第三方库(express、mysql)
2.Node.JS环境安装
官网下载地址安装LTS版本就好。建议用安装包,而不是二进制文件,二进制文件安装我调了半天的环境,md最后还是用的安装包。
我不喜欢将东西按到c盘,安装地址换别的盘了,所以需要进行环境配置。参考教程
2.1环境配置
2.1.1Node.JS的配置
-
安装包过程就改个安装地址,剩下一直next。
-
输入
node -v
如果显示版本号就安装成功。真的建议直接使用安装包,压缩包安装我弄了半天,命令依然没法用 -
在nodejs的安装目录下新建“node_global”与“node_cache”文件夹。
-
设置全局目录和缓存目录,cmd下输入
npm config set prefix "node_global地址"
npm config set cache "node_cache地址"
-
设置环境变量,新建NODE_JS_PATH变量,值设置为node_modules的地址。
path环境变量增加一个node_global地址
。path还有添加一个nodejs安装路径
2.1.2Vs Code配置nodejs环境
我还是觉得用终端运行js好麻烦,所以还是用vs code吧!
其实挺简单,打开launch.json,点击添加配置nodejs,就行了。
因为vscode我还配置了c/c++环境,所以它们有冲突,然后我弄了半天,发现不要launch.json只有taskjson能运行,而且不冲突。也挺好。
2.1.3WebStorm安装
额,vscode的代码补全我弄了好久,依然不好使,还找不到解决办法。所以我换webstorm破解版了。百度云下载。
用法很简单,先安装webstorm,再直接打开,随便创建一个文件,把插件(zip压缩包)拖入到webstorm中,然后会显示
再点help->Eval Reset
2.1.4webstorm无法正常处理解决require
md我就是为了解决这个问题才换的ide,vscode我没找到能解决这个问题的方法,webstorm有解决的方法。参考攻略。require文件在webstorm破解版百度云中附带了。
我好像找到问题出哪了,不需要添加什么require文件
就是把划红线的选项选上。
intellij全家桶真不错
3.fs模块
3.1fs模块的导入
const fs = require('fs');
为什么我VS code的代码提示不太好使呢,require没提示
3.1.2fs模块的使用
const fs = require("fs");
读取文件
fs.readFile("./commen.txt",function (err,data) {
if(err) {
return console.log("打开错误!" + err.message);
}
console.log("打开成功");
})
写入文件
fs.writeFile("./commen.txt","test",function (err) {
if(err) {
return console.log("写入失败!" + err.message);
}
console.log("写入成功!");
})
在使用fs模块操作文件时,如果提供的操作路径是以./或../开头的相对路径时,很容易出现路径拼接错误的问题。
代码在运行时,会以执行node命令的所在目录,动态拼接出被操作文件的完整路径,所以可能拼出来的路径是不对的。
感觉是解释型语言的问题,编译型语言编译完后应该只以运行程序的路径为准,所以没这个问题
解决办法
-
绝对路径
但绝对路径可移植性差,不好。
-
__dirname + 相对路径 = 绝对路径(__dirname表示当前文件所在目录)
既有相对的优点,又没有相对路径的问题
const fs = require("fs");
fs.readFile( __dirname + "\\commen.txt",function (err,data) {
if(err) {
return console.log("打开错误!" + err.message);
}
console.log("打开成功");
})
console.log("路径" + __dirname)
4.path模块
4.1path模块的导入
const path = require("path")
4.2path模块使用
4.2.1path.join()
const path = require("path")
console.log("路径1" + path.join(__dirname , "//commen.txt"));
console.log("路径2" +path.join(__dirname ,"/commen.txt"));
console.log("路径3" +path.join(__dirname , ".//commen.txt"));
console.log("路径4" +path.join(__dirname , "./" , "/commen.txt"));
console.log("路径5" +path.join(__dirname , "../" , "/commen.txt"));
console.log("路径6" +path.join(__dirname , "\\commen.txt"));
console.log("路径7" + path.join(__dirname , "commen.txt"));
console.log("路径8" + __dirname + "commen.txt")
显然比直接字符串相加好用多了,怎么都能拼出对的路径。值得注意的是“../”能抵消一个路径(路径5)。
4.2.2path.basename()
const path = require("path")
console.log(path.basename("F:\\WebStorm_Project\\test\\commen.txt"))
console.log(path.basename("F:\\WebStorm_Project\\test\\commen.txt",".txt"))
第一个参数是路径名,第二个参数可选,是文件后缀名,加上就去掉后缀名。
4.2.3path.extname()
const path = require("path");
console.log(path.extname("F:\\WebStorm_Project\\test\\commen.txt"));
输出.txt
获取文件后缀名,参数是路径。
感觉模块比较简单以后笔记就不写了,挑重要的记。
为了学校企业实践学的nodejs感觉不需要这么细或者之后再学
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix