nodejs中的文件系统】的更多相关文章

在nodeJS中操作文件系统(二)   1. 移动文件或目录 在fs模块中,可以使用rename方法移动文件或目录,使用方法如下:     fs.rename(oldPath,newPath,callback); 在rename方法中,有三个参数,oldPath参数用于指定被移动文件或目录的完整路径,newPath参数用于指定移动后该文件或目录的完整路径,callback参数用于指定移动执行完毕时调用的回调函数,在该回调函数使用一个参数,参数值为移动后操作失败时触发的错误对象. 比如如下代码:…
. 目录 简介 nodejs中的文件系统模块 Promise版本的fs 文件描述符 fs.stat文件状态信息 fs的文件读写 fs的文件夹操作 path操作 简介 nodejs使用了异步IO来提升服务端的处理效率.而IO中一个非常重要的方面就是文件IO.今天我们会详细介绍一下nodejs中的文件系统和IO操作. nodejs中的文件系统模块 nodejs中有一个非常重要的模块叫做fs.这个模块提供了许多非常实用的函数来访问文件系统并与文件系统进行交互. 简单统计一下,fs提供了下面这么多种使用…
前面的话 fs文件系统用于对系统文件及目录进行读写操作,本文将详细介绍js文件系统 概述 文件 I/O 是由简单封装的标准 POSIX 函数提供的. 通过 require('fs') 使用该模块. 所有的方法都有异步和同步的形式. 异步形式始终以完成回调作为它最后一个参数. 传给完成回调的参数取决于具体方法,但第一个参数总是留给异常. 如果操作成功完成,则第一个参数会是 null 或 undefined //异步示例 var fs = require('fs'); fs.unlink('/tmp…
转自原文 nodejs 中使用 ftp 1.  npm install ftp 项目 https://github.com/mscdex/node-ftp 2.  转自 http://www.open-open.com/lib/view/open1408006289661.html Node.js的FTP客户端模块,提供了一个用于与FTP服务器进行通信的异步接口. 获取当前的(远程)工作目录的目录列表: ? 1 2 3 4 5 6 7 8 9 10 11 12 varClient = requi…
node 的fs文档密密麻麻的 api 非常多,毕竟全面支持对文件系统的操作.文档组织的很好,操作基本分为文件操作.目录操作.文件信息.流这个大方面,编程方式也支持同步.异步和 Promise. 本文记录了几个文档中没详细描写的问题,可以更好地串联fs文档思路: 文件描述符 同步.异步与 Promise 目录与目录项 文件信息 stream 文件描述符 文件描述符是一个非负整数.它是一个索引值,操作系统可以根据它来找到对应的文件. 在 fs 的很多底层 api 中,需要用到文件描述符.在文档中,…
目录 简介 event loop和worker pool event loop和worker pool中的queue 阻塞event loop event loop的时间复杂度 Event Loop中不推荐使用的Node.js核心模块 partitioning 或者 offloading V8引擎的限制 REDOS正则表达式DOS攻击 JSON DOS攻击 阻塞Worker Pool 总结 为什么我们不要在nodejs中阻塞event loop 简介 我们知道event loop是nodejs中…
Nodejs中获取时间戳的方法有很多种,例如: new Date().getTime() Date.now() process.uptime() process.hrtime() 平时想获取一个时间戳的话,用这些方法都可以,那么这些方法有什么区别呢? new Date().getTime()和Date.now() 这些方法是通过node运行环境的系统时间毫秒数,+new Date()写法的效果和new Date().getTime()效果相同. 在需要频繁使用时间戳的场景中,需要关注方法性能,这…
最近需要在Nodejs中用到C#的代码,从网上了解到可以采用Edgejs来实现Nodejs与C#的代码交互, 直接复制网上的代码运行总是出各种错,填了不少坑,现在把自己的案例代码大致整理一下,方便以后自己查询. 一.安装Edge.js 运行命令行(CMD),进入当前项目的目录,执行命令"npm install edge"进行安装.(这里也可以选择全局安装,具体操作就不说了) 二.调用Edge.js 在用Edge.js和C#代码交互的时候,有三种方式: 1. 第一种方式是将c#的代码封装…
经常看到 req.on('error', function(){...}); 这种代码. 在nodejs中,可以使用 EventEmitter来实现. 具体的关键词有如下几个: var reqEvent = new EventEmitter(); reqEvent.on(ev, cb); reqEvent.emit('error'); 下面是这个实现方法: var EventEmitter = require('events').EventEmitter; var reqEvent = new…
Linux umount命令用于卸除文件系统. umount可卸除目前挂在Linux目录中的文件系统. 语法 umount [-ahnrvV][-t <文件系统类型>][文件系统] 参数: -a 卸除/etc/mtab中记录的所有文件系统. -h 显示帮助. -n 卸除时不要将信息存入/etc/mtab文件中. -r 若无法成功卸除,则尝试以只读的方式重新挂入文件系统. -t<文件系统类型> 仅卸除选项中所指定的文件系统. -v 执行时显示详细的信息. -V 显示版本信息. [文件…
nodejs的主要特点是单线程.异步I/O.事件驱动.让我们先大概了解一下这些名词的意思. 单线程 单线程是任务按照顺序执行的,并且每次只执行一个任务,只有前面的任务执行完成以后,后面的任务才执行.在JS引擎中负责解释和执行JavaScript代码的线程只有一个,即主线程.但实际上还存在其他的线程.例如处理AJAX请求的线程.处理DOM事件的线程.定时器线程.读写文件的线程等.这些线程可能存在与JS引擎之内,也可能存在与JS引擎之外,这些线程为工作线程. 同步和异步 同步:执行任务时,后面的任务…
在nodejs中可以通过fs模块读写文件,我们来看下fs模块提供的接口: fs.readFile(filename, callback) 异步读取文件. filename是读取文件的文件名,如果是相对路径,则通过当前进程执行的路径来查找文件. 回调函数有两个参数callback(err, buffer) 第一个参数为err(如果没有报错,该参数值为null),进行操作时,应先判断err是否有值. 第二个参数是代表文件内容的Buffer实例. fs.writeFile(filename, cont…
以下内容都是关于在nodejs中的this而非javascript中的this,nodejs中的this和在浏览器中javascript中的this是不一样的. 在全局中的this console.log(this); {}this.num = 10; console.log(this.num); 10 console.log(global.num); undefined 全局中的this默认是一个空对象.并且在全局中this与global对象没有任何的关系,那么全局中的this究竟指向的是谁?…
在JS中有全局作用域和函数作用域,而在Nodejs中也自己的作用域,分为全局作用域(global)和模块作用域. js作用域: 以前学js的时候我们的全局对象是window,如: var a = 10; console.log(window.a); 我们定义的全局变量默认是给window添加一个属性或者方法. function fn(){ var num = 22; } console.log(num); 报错,因为num是在函数中定义的,在函数外部是访问不了函数内部的变量的,虽然可以通过闭包来…
只要是在nodejs中写自己的文件模块就少不了会遇到module.exports和exports的使用,看别人的代码大多都会使用“module.exports=exports=<对象/函数等>”怪异的串联用法,一问原因,貌似都是云里雾里,如此写法更像是保守的防止性写法. 这种问题除了看源代码外,只能写点代码进行求证. 写了两个模块文件,provider.js产生任意类型的对象, customer.js返回并输出provider对象. 第一种情况: provider.js,直接在exports上…
详细讲解nodejs中使用socket的私聊的方式 在上一次我使用nodejs+express+socketio+mysql搭建聊天室,这基本上就是从socket.io的官网上的一份教程式复制学习,然后,根据国情,我又在其中加入了私聊点对点,然后共享画图的你画我猜功能. 先上效果图: 由于本人太穷,所以服务器和数据库都是使用的国外免费的.域名是我的,它的访问地址是:http://chat.lovewebgames.com 先说下我对socket.io的理解,websocket更像是开启了一个端口…
Nodejs中cluster模块的多进程共享数据问题 前述 nodejs在v0.6.x之后增加了一个模块cluster用于实现多进程,利用child_process模块来创建和管理进程,增加程序在多核CPU机器上的性能表现.本文将介绍利用cluster模块创建的多线程如何共享数据的问题. 进程间数据共享 首先举个简单的例子,代码如下: var cluster = require('cluster'); var data = 0;//这里定义数据不会被所有进程共享,各个进程有各自的内存区域 if…
在常用的nodejs+express工程中,为了安全在登录及表单传输时,应该都需进行加密传输,目前个人常用到的加密方式有下列几种: 1.Hash算法加密: 创建一个nodejs文件hash.js,输入内容如下: var crypto = require('crypto'); //加载crypto库 console.log(crypto.getHashes()); //打印支持的hash算法 结果如下: [ 'DSA', 'DSA-SHA', 'DSA-SHA1', 'DSA-SHA1-old',…
常用的nodeJS中npm的命令:npm主要是node包管理和发布的工具.npm常用的命令:1:npm install <name> //(下载包) 下载后的包放在当前路径下面 npm install express 下载express模块2:npm install <name> -g //-g 将包安装到全局环境中,我PC的全局环境是:C:\Users\qinbb\AppData\Roaming\npm,但是在代码中直接通过require()的方式是没有办法调用全局安装的包的3:…
前言 Nodejs最大的亮点就在于事件驱动, 非阻塞I/O 模型,这使得Nodejs具有很强的并发处理能力,非常适合编写网络应用.在Nodejs中大部分的I/O操作几乎都是异步的,也就是我们处理I/O的操作结果基本上都需要在回调函数中处理,比如下面的这个读取文件内容的函数: fs.readFile('/etc/passwd', function (err, data) { if (err) throw err; console.log(data); }); 那,我们读取两个文件,将这两个文件的内…
Mongodb使用 打开解压后的Mongodb文件夹,新建data.logs文件夹,并在logs文件夹中新建mongodb.log文档. 添加后Mongod文件夹示意图: 用cmd命令行启动Mongodb:命令行进入bin目录,输入命令mongod --dbpath ..\data 加载Mongodb到服务 Mongodb默认端口27017.启动时防止端口占用. 每次使用命令行启动比较麻烦,下面说明将Mongodb加载到服务的方法. cmd命令行打开到bin目录,输入以下命令: mongod -…
nodejs中的异步 1 nodejs 中的异步存在吗? 现在有点 javascript 基础的人都在听说过 nodejs ,而只要与 javascript 打交到人都会用或者是将要使用 nodejs .毕竟 nodejs 的生态很强大,与 javascript 相关的工具也做的很方便,很好用. javascript 语言很小巧,但是一旦与 nodejs 中的运行环境放在一起,有些概念就很难理解,特别是异步的概念.有人会说不会啊,很好理解啊?不就是一个ajax请求加上一个回调函数,这个ajax函…
导言:nodejs中所有与文件相关的操作都在fs模块中,而读写操作又是我们会经常用到的操作,nodejs的fs模块针对读操作为我们提供了readFile,read, createReadStream三个方法,针对写操作为我们提供了writeFile,write, createWriteStream三个方法,下面分析一下它们的区别: 一.readFile和writeFile 1.readFile方法是将要读取的文件内容完整读入缓存区,再从该缓存区中读取文件内容,具体操作如下: fs.readFil…
前面的话 Node组织了自身的核心模块,也使得第三方文件模块可以有序地编写和使用.但是在第三方模块中,模块与模块之间仍然是散列在各地的,相互之间不能直接引用.而在模块之外,包和NPM则是将模块联系起来的一种机制.在介绍NPM之前,不得不提起CommonJS的包规范.JavaScript不似Java或者其他语言那样,具有模块和包结构.Node对模块规范的实现,一定程度上解决了变量依赖.依赖关系等代码组织性问题.包的出现,则是在模块的基础上进一步组织JavaScript代码.CommonJS的包规范…
最近在写xmocker的工具,用于开发前期的mock数据,不可避免的用到了代理的中间件.当然,github上有关于http-proxy封装的中间件.毕竟是自己练手的项目,就自己写了个中间件,方便定制功能. http-proxy库用于koa中,是使用它的 proxy.web方法.常规的用法是: proxy.web(req, res, { target: 'http://mytarget.com:8080' }, function(e) { ... }); 项目中的要求是将API代理到用户填写的网址…
通读cheerio API ——NodeJs中的jquery 所谓工欲善其事,必先利其器,所以通读了cheerio的API,顺便翻译了一遍,有些地方因为知道的比较少,不知道什么意思,保留了英文,希望各位不吝告诉我,然后一起把这个翻译完成. ###cheerio 为服务器特别定制的,快速.灵活.实施的jQuery核心实现. ###Introduction 将HTML告诉你的服务器 var cheerio = require('cheerio'), $ = cheerio.load('<h2 cla…
模块是一门语言编写大项目的基石,因此,了解如何组织.编写.编译.加载模块很重要.这里主要谈谈Node中的模块加载. 1.Node中的模块,主要使用require来加载模块,文件 require("./") --- 加载本文件夹下面的package.json,如果没有,则加载index.js.index.node require("some.js") --加载本文件夹下面的some.js文件 require("lib/some.js") --加载l…
在nodejs中,json序列化时Date类型时,默认转为UTC格式. 如下图 上面只是一个例子,下面我用一个更具体化的例子来展示一个这个情况,我们在开发WEB项目中,经常用到Express组件, 我们就用express创建了一个demo项目 这是一个express项目,大家都很熟悉吧,我们现在要提供一个api接口,返回一些信息 返回操作员信息,这是很正常的接口吧, 大家看一下,接口log日志中显示的时间是晚上20点,可是接口返回的JSON数据即是12点,差8个小时. 为什么呢? 原因是因为JS…
在nodejs中,json序列化时Date类型时,默认转为UTC格式. 如下图 zhupengfei@DESKTOP-HJASOE3 MINGW64 /d/MyProject/exp2 $ node > new Date(); 2018-04-24T12:32:55.590Z > 上面只是一个例子,下面我用一个更具体化的例子来展示一个这个情况,我们在开发WEB项目中,经常用到Express组件, 我们就用express创建了一个demo项目,我们现在要提供一个api接口,返回一些信息 返回操作…
本文转自:https://blog.csdn.net/u013992330/article/details/81110018 最新版nodejs中,多了一个package-lock.json文件,刚开始对这个文件很是疑惑,后来查了一番资料后,通过验证,终于确定了这两个文件的关系. package.json与package-lock.json文件的作用package.json文件记录你项目中所需要的所有模块.当你执行npm install的时候,node会先从package.json文件中读取所有…