读写文件中的路径问题

  1. readFile()读取文件函数中的./(相对路径)这个参数,相对的是执行node命令的路径,而不是相对于正在执行的这个js文件来查找。为了解决这个问题:

    __dirname(两个下划线):表示当前正在执行的js文件所在的目录

    __filename:表示当前正在执行的js文件的完整路径

    let filename = __dirname+'\\'+'hello.txt'

    上面的代码中:'\'的第一个\表示转义字符,hello.txt表示的是要读取的文件

通过path模块进行路径拼接

  1. 使用path模块进行路径拼接的好处:不用来考虑操作系统的兼容性
  2. let path = require('path'); let filename = path.join(__dirname,'hello.txt');

通过fs模块创建文件夹

  1. 例如创建fs文件夹,fs文件夹下面有“笔记”文件夹

    let fs = require('fs'); fs.mkdir('./fs',function(err){ if(err){ throw err; } }); fs.mkdir('./fs/笔记',function(err){ if(err){ throw err; } });

需要注意的一些问题

  1. 异步操作无法通过try-catch来捕获异常,需要通过判断err来判断是否出错。
  2. 同步操作可以通过try-catch来捕获异常。
  3. 不要使用fs.exists(path,callback)来判断文件是否存在,直接判断error即可。
  4. 文件操作时的路径问题
    • 在读写文件的时候‘./’表示的是当前执行node命令的那个路径,不是被执行的js文件的路径。
    • __dirname 表示的永远是“当前被执行的js的目录”
    • __filename 表示的是“被执行的js的文件名(含路径)”

通过node.js编写http服务程序,极简版本

步骤

  1. 加载http模块

  2. 创建http服务

  3. 为http服务对象添加request事件处理程序

  4. 开启http服务监听,准备接收客户端请求


    //http服务程序 //1.加载http服务
    let http = require('http'); //2.创建一个http服务对象
    let server = http.createServer(); //3.监听用户的请求事件
    //request 对象包含了用户请求报文中的所有内容,通过request对象可以获取所有用户提交过来的数据
    //response 对象用来向用户相应一些数据,当服务器要向客户端响应数据的时候必须使用response对象
    //request 简写为req response简写为res
    server.on('request',function(req,res){
    //向浏览器传回响应
    res.write('hello world');
    //对于每一个请求服务器都必须结束响应,否则的话浏览器会认为服务器响应一直没有结束、
    res.end();
    }) //4.启动服务
    server.listen(8080,function(){
    console.log('服务器启动了,请访问“http://localhost:8080”');
    });

node.js 学习02的更多相关文章

  1. Node.JS学习——学习笔记

    Node.JS--学习笔记 2020年02月23日11:52:01 我打算自学NodeJS-通过阅读NodeJS官网来完成. https://nodejs.org/dist/latest-v13.x/ ...

  2. NODE.JS学习的常见误区及四大名著

    NODE.JS学习的常见误区及四大名著 前段时间由于不满于社区里很多人对于NODE.JS的种种误解而写了一篇文章名为: NODE.JS之我见:http://www.cnblogs.com/pugang ...

  3. Node.js学习系列总索引

    Node.js学习系列也积累了一些了,建个总索引方便相互交流学习,后面会持续更新^_^! 尽量写些和实战相关的,不讲太多大道理... Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- ...

  4. 【入门必备】最佳的 Node.js 学习教程和资料书籍

    Web 开发人员对 Node.js 的关注日益增多,更多的公司和开发者开始尝试使用 Node.js 来实现一些对实时性要求高,I/O密集型的业务.这篇文章中,我们整理了一批优秀的资源,你可以得到所有你 ...

  5. node.js学习(1)

    新建便笺 3 node.js学习(1) 1)安装 http://nodejs.org/download/下载. 2)编写一个案例 var http=require("http"); ...

  6. 我的Node.js学习历程

    学习一门技术,每个人都有每个人的方法.我的方法很简单,做项目. 基本概念 在搭建一个node网站之前,还是要掌握一些基本的概念的,这里列举一下,具体的内容大家自己到网上去查: npm bower ex ...

  7. Node.js学习之TCP/IP数据通讯

    Node.js学习之TCP/IP数据通讯 1.使用net模块实现基于TCP的数据通讯 提供了一个net模块,专用于实现TCP服务器与TCP客户端之间的通信 1.1创建TCP服务器 在Node.js利用 ...

  8. Node.js学习起步

    Node.js学习: 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱 ...

  9. 一点感悟:《Node.js学习笔记》star数突破1000+

    写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...

随机推荐

  1. 来,让我们谈一谈 Normalize.css

    Normalize.css 只是一个很小的CSS文件,但它在默认的HTML元素样式上提供了跨浏览器的高度一致性.相比于传统的CSS reset,Normalize.css是一种现代的.为HTML5准备 ...

  2. HDU 1043 Eight 【经典八数码输出路径/BFS/A*/康托展开】

    本题有写法好几个写法,但主要思路是BFS: No.1 采用双向宽搜,分别从起始态和结束态进行宽搜,暴力判重.如果只进行单向会超时. No.2 采用hash进行判重,宽搜采用单向就可以AC. No.3 ...

  3. HDU 1558 Segment set(并查集)

    题意: 给你一些线段的起点和终点的坐标,最后问和某个线段相连的或者间接相连的线段有多少个(包括本身)? P X1 Y1X2 Y2  起点(X1,X2)终点(X2,Y2):按照出现次数依次编号为1,2, ...

  4. 51nod 编辑距离问题(动态规划)

    编辑距离问题 给定两个字符串S和T,对于T我们允许三种操作:(1) 在任意位置添加任意字符(2) 删除存在的任意字符(3) 修改任意字符 问最少操作多少次可以把字符串T变成S? 例如: S=  “AB ...

  5. ASP.NET Core 2.2 基础知识(八) 主机 (未完待续)

    主机负责应用程序启动和生存期管理.共有两个主机 API : 1.Web 主机 : 适用于托管 Web 应用,基于 IWebHostBuilder ; 2.通用主机 : 适用于托管非 Web 应用. 基 ...

  6. 【贪心】【堆】bzoj1029 [JSOI2007]建筑抢修

    按完成时限排序,一个个修复.若当前建筑花费时间+之前花费的总时间不超过时限,则ans++:否则,从之前已修复的建筑中挑一个耗时最多的,与当前建筑比较,若当前建筑更优,则更新ans. #include& ...

  7. 【数论】【枚举约数】【欧拉函数】bzoj2705 [SDOI2012]Longge的问题

    ∵∑gcd(i, N)(1<=i <=N) =k1*s(f1)+k2*s(k2)+...+km*s(km) {ki是N的约数,s(ki)是满足gcd(x,N)=ki(1<=x< ...

  8. debian6 安装VirtualBox的方法

    方法一: 参考: https://www.virtualbox.org/wiki/Linux_Downloads    更新sources.list deb http://download.virtu ...

  9. Swift,类的调用

    1.class或者struct如果没有实例没办法直接调用 (1)设置class后可直接调用 class S{ static var width:Int{ //static代表公有的,都可使用 retu ...

  10. [Git] 根据commiter过滤该用户的所有提交

    git log --pretty=oneline --author="xxxx" -(n) 仅显示最近的 n 条提交 --since,--after 仅显示指定时间之后的提交 -- ...