nodejs怎么与c语言通信费是什么,NodeJS介绍与使用

NodeJS是什么

Node.js是一个基于Chrome V8引擎的JavaScript运行时。

NodeJS并不是一门语言,JavaScript才是一门语言,他是一个运行时,如果想要在服务器端运行就需要运行时。

nodeJS使用了一个事件驱动、非阻塞式I/O的模型

非阻塞式I/O

I/O:就是input,output,计算机输入输出的意思。键盘,打印机这些都是输入输出设备。对计算机来说就是读写磁盘或者进行网络操作,数据库操作都是I/O操作。

阻塞式I/O:I/O时进程休眠等待I/O完成后进行下一步。

非阻塞式I/O:I/O时函数立即返回,进程不等待I/O完成就执行下一步,I/O完成后通知主程序。

事件驱动(发布订阅模式)

I/O等异步操作结束后的通知

运行node

方式1:

命令行执行node

进入了node的运行环境

退出执行 .exit ( 或者ctrl+c )

方式2:推荐使用在跟入口文件的同一层目录下执行

node 文件路径

环境

Commonjs规范

一种模块化规范

模块化:每个文件是一个模块,有自己的作用域

在模块内部module变量代表模块本身

module.exports属性代表模块对外接口

require规则

/表示绝对路径

./表示相对于当前文件的

以 ' / ' 或 ' ./ ' 认为是按照当前给的路径查找模块。

不写路径则认为是build-in模块或者各级node-modules内的第三方模块

支持js、json、node 扩展名,不写,先尝试没有后缀的文件,再依次尝试

如果引入的是文件夹,那么会读取该文件夹下的Index文件

require特性

module被加载的时候执行,加载后缓存

一旦出现某个模块被循环加载,就只加载已经执行的部分,还未执行的部分不会输出。

注意:使用模块时,建议引入都写在文件的开头部分,输出都写在文件末尾

调试

浏览器调试

node --inspect-brk main.js

chrome://inspect/#devices

API

global全局对象

commonjs方法:require() module.exports

Buffer processs timer console.log

path

path模块提供用于处理文件路径和目录路径的实用工具

path.normalize

规范化给定的path

path.join([...path])

使用平台特定的分隔符作为定界符将所有给定的path片段连接在一起,然后规范化生成的路径。

path.resolve([...paths])

将路径或路径片段的序列解析为绝对路径。

path.basename(path[,ext])

返回path的最后一部分,尾部的目录分隔符将被忽略

path.dirname(path)

返回path的目录名

path.extname(path)

返回path的扩展名

path.parse(path)

dir root base name ext

path.format(pathObject)

从对象返回路径字符串。 与 path.parse() 相反。

__dirname 是执行代码的文件所在系统的绝对目录

__filename 是执行代码的文件所在系统的绝对文件路径

注意:

__ dirname、__filename 返回执行文件所在系统的绝对路径

process.cwd()总是返回执行node命令所在文件夹

在require方法中指相对当前文件所在文件夹

在其他地方和process.cwd()一样,相对node执行所在文件夹

fs文件系统

fs.readFile()

fs.writeFile()

fs.appendFile()

fs.stat()

fs.mkdir()

fs.readdir()

fs.rename()

fs.rmdir()

fs.unlink()

util

util.promisify()

url

url.format()

url.parse()

querystring

querystring.escape()

querystring.unescape()

querystring.parse()

querystring.stringify()

http(作为客户端)

http.get(options[, callback])

http.request(options[, callback])

http(作为服务器)

http.createServer(options)

response.statusCode

response.statusMessage

response.setHeader(name, value)

response.writeHead(statusCode[, statusMessage] [, headers])

response.write(chunk[, encoding] [, callback])

response.end([data[, encoding]] [, callback])

buffer

用于读取或操作二进制数据流的机制,实例类似整数数组,大小固定

Buffer.alloc()

Buffer.from()

Buffer.isBuffer()

Buffer.concat()

buf.length

buf.toString()

buf.fill()

buf.equals()

buf.indexOf()

buf.copy()

Stream

fs.createReadStream()

fs.createWriteStream()

events

大多数 Node.js 核心 API 构建于惯用的异步事件驱动架构,其中某些类型的对象(又称触发器,Emitter)会触发命名事件来调用函数(又称监听器,Listener)。

emitter.addListener(eventName, listener)

emitter.emit(eventName[, ...args])

emitter.off(eventName, listener)

emitter.on(eventName, listener)

emitter.once(eventName, listener)

emitter.removeAllListeners([eventName])

emitter.removeListener(eventName, listener)

Like

Like

Love

Haha

Wow

Sad

Angry

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值