node.js 学习02
读写文件中的路径问题
- readFile()读取文件函数中的./(相对路径)这个参数,相对的是执行node命令的路径,而不是相对于正在执行的这个js文件来查找。为了解决这个问题:
__dirname(两个下划线):表示当前正在执行的js文件所在的目录
__filename:表示当前正在执行的js文件的完整路径
let filename = __dirname+'\\'+'hello.txt'
上面的代码中:'\'的第一个\表示转义字符,hello.txt表示的是要读取的文件
通过path模块进行路径拼接
- 使用path模块进行路径拼接的好处:不用来考虑操作系统的兼容性
let path = require('path'); let filename = path.join(__dirname,'hello.txt');
通过fs模块创建文件夹
例如创建fs文件夹,fs文件夹下面有“笔记”文件夹
let fs = require('fs'); fs.mkdir('./fs',function(err){ if(err){ throw err; } }); fs.mkdir('./fs/笔记',function(err){ if(err){ throw err; } });
需要注意的一些问题
- 异步操作无法通过try-catch来捕获异常,需要通过判断err来判断是否出错。
- 同步操作可以通过try-catch来捕获异常。
- 不要使用
fs.exists(path,callback)
来判断文件是否存在,直接判断error即可。 - 文件操作时的路径问题
- 在读写文件的时候‘./’表示的是当前执行node命令的那个路径,不是被执行的js文件的路径。
- __dirname 表示的永远是“当前被执行的js的目录”
- __filename 表示的是“被执行的js的文件名(含路径)”
通过node.js编写http服务程序,极简版本
步骤
加载http模块
创建http服务
为http服务对象添加request事件处理程序
开启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的更多相关文章
- Node.JS学习——学习笔记
Node.JS--学习笔记 2020年02月23日11:52:01 我打算自学NodeJS-通过阅读NodeJS官网来完成. https://nodejs.org/dist/latest-v13.x/ ...
- NODE.JS学习的常见误区及四大名著
NODE.JS学习的常见误区及四大名著 前段时间由于不满于社区里很多人对于NODE.JS的种种误解而写了一篇文章名为: NODE.JS之我见:http://www.cnblogs.com/pugang ...
- Node.js学习系列总索引
Node.js学习系列也积累了一些了,建个总索引方便相互交流学习,后面会持续更新^_^! 尽量写些和实战相关的,不讲太多大道理... Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- ...
- 【入门必备】最佳的 Node.js 学习教程和资料书籍
Web 开发人员对 Node.js 的关注日益增多,更多的公司和开发者开始尝试使用 Node.js 来实现一些对实时性要求高,I/O密集型的业务.这篇文章中,我们整理了一批优秀的资源,你可以得到所有你 ...
- node.js学习(1)
新建便笺 3 node.js学习(1) 1)安装 http://nodejs.org/download/下载. 2)编写一个案例 var http=require("http"); ...
- 我的Node.js学习历程
学习一门技术,每个人都有每个人的方法.我的方法很简单,做项目. 基本概念 在搭建一个node网站之前,还是要掌握一些基本的概念的,这里列举一下,具体的内容大家自己到网上去查: npm bower ex ...
- Node.js学习之TCP/IP数据通讯
Node.js学习之TCP/IP数据通讯 1.使用net模块实现基于TCP的数据通讯 提供了一个net模块,专用于实现TCP服务器与TCP客户端之间的通信 1.1创建TCP服务器 在Node.js利用 ...
- Node.js学习起步
Node.js学习: 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱 ...
- 一点感悟:《Node.js学习笔记》star数突破1000+
写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...
随机推荐
- HDU 1427 速算24点【数值型DFS】
速算24点 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- 二分+Kruskal【p2798】爆弹虐场
Description 某年某月某日,Kiana 结识了一名爆弹虐场的少年. Kiana 仗着自己多学了几年OI,所以还可以勉勉强强给这位少年 讲一些自己擅长的题.具体来说,Kiana 先给这位少年灌 ...
- [Lydsy1805月赛] 对称数
挺不错的一道数据结构题QWQ. 一开始发现这个题如果不看数据范围的话,妥妥的树上莫队啊23333,然鹅10组数据是不可能让你舒舒服服的树上莫队卡过的23333 于是想了想,这个题的模型就是,把u到v链 ...
- python3开发进阶-Django框架中form的查看校验方法is_valid()的源码,自定义验证方法
form表单的校验方法is_valid() 点开我们发现这个函数里面只有两个方法方法,最终返回True or False 我们点进.is_bound属性,里面判断传输的数据不是空和上传文件不是空 点进 ...
- 数列求和 Exercise06_13
/** * @author 冰樱梦 * 时间:2018年下半年 * 题目:数列求和 * */ public class Exercise06_13 { public static void main( ...
- codevs 4163 求逆序对的数目 -树状数组法
4163 hzwer与逆序对 时间限制: 10 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题目描述 Description hzwer在研究逆序对. 对于数列{a},如果 ...
- iOS使用CoreData实现收藏功能
一般做收藏都是使用数据库或者归档,使用CoreData实现收藏功能就是没事时练一下,实现大概和数据库差不多. 首先创建一个工具类继承NSObject,在里面实现所需要的方法. 工具类的.h文件: ty ...
- KVC与KVO的不同
vc 就是一种通过字符串去间接操作对象属性的机制, 访问一个对象属性我们可以 person.age 也可以通过kvc的方式 [person valueForKey:@"age&quo ...
- java--模板方法模式
/* 需求:获取一段程序的运行时间 原理:获取程序开始和结束的时间并相减即可 获取时间:用java中已有的一个类:System.currentTimeMillis(); 当代码完成优化后,就可以解决这 ...
- [Lync]lync同步通讯簿
概述 在客户现场部署lync的时候,突然发现新安装的lync客户端,搜索联系人功能无法使用,而将lync客户端安装后,隔一段时间后,又可以查询了,发现可能是数据没有同步的原因. 解决方案 客户端地址簿 ...