了解Node.js

什么是node.js?

Node.js 就是运行在服务端的 JavaScript,是一个基于Chrome JavaScript 运行时建立的一个平台。
(基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。)

关于Node.js 安装配置可以参考https://www.runoob.com/nodejs/nodejs-install-setup.html

Node.js 应用是由哪几部分组成的

1.引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
例如:

const fs = require("fs");

2.创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
3.接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。

Node 自带了交互式解释器,可以执行以下任务:

读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中。
执行 - 执行输入的数据结构
打印 - 输出结果 循环 -
循环操作以上步骤直到用户两次按下 ctrl-c 按钮退出。

什么是NPM?

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

允许用户从NPM服务器下载别人编写的第三方包到本地使用。
允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

例如:我们使用 npm 命令安装常用的 Node.js web框架模块 express:

npm install express

卸载模块:

npm uninstall express

更新模块:

npm update express

搜索模块:

npm search express

由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 “npm -v” 来测试是否成功安装。

Node.js 全局对象

在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了
global 本身以外)都是 global 对象的属性。

注意: 最好不要使用 var 定义变量以避免引入全局变量,因为全局变量会污染命名空间,提高代码的耦合风险。

__dirname 表示当前执行脚本所在的目录。
__filename 表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。

console.log(__dirname);
console.log(__filename );

console 方法

console.log([data][, ...])

向标准输出流打印字符并以换行符结束。该方法接收若干 个参数,如果只有一个参数,则输出这个参数的字符串形式。如果有多个参数,则 以类似于C 语言 printf() 命令的格式输出。

2	console.info([data][, ...])

该命令的作用是返回信息性消息,这个命令与console.log差别并不大,除了在chrome中只会输出文字外,其余的会显示一个蓝色的惊叹号。

3	console.error([data][, ...])

输出错误消息的。控制台在出现错误时会显示是红色的叉子。

4	console.warn([data][, ...])

输出警告消息。控制台出现有黄色的惊叹号。

5	console.dir(obj[, options])

用来对一个对象进行检查(inspect),并以易于阅读和打印的格式显示。

6	console.time(label)

输出时间,表示计时开始。

7	console.timeEnd(label)

结束时间,表示计时结束。

8	console.trace(message[, ...])

当前执行的代码在堆栈中的调用路径,这个测试函数运行很有帮助,只要给想测试的函数里面加入 console.trace 就行了。

9	console.assert(value[, message][, ...])

用于判断某个表达式或变量是否为真,接收两个参数,第一个参数是表达式,第二个参数是字符串。只有当第一个参数为false,才会输出第二个参数,否则不会有任何结果。

Node.js 文件系统

Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API。 Node 导入文件系统模块(fs)语法如下所示

const fs = require("fs")

补充关于异步和同步的问题

Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的fs.readFileSync()。 异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。
建议大家使用异步方法,比起同步,异步方法性能更高,速度更快,而且没有阻塞。

写服务端注意要在当前目录下加上"./"

// 异步读文件
fs.readFile('./08read.txt',(err,data)=>{
    console.log(err)
    console.log(data.toString())
})
// 同步读文件
var data = fs.readFileSync('./08read.txt',"utf8");
console.log(data);

如果不加编码格式(utf-8),出来的就是一串buffer编码,要到内容可以直接使用toString

fs.writeFile(file, data[, options], callback)

参数使用说明如下:
file - 文件名或文件描述符。
data - 要写入文件的数据,可以是 String(字符串) 或 Buffer(缓冲) 对象。
options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 ‘w’
callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值