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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

历年高考报考人数和录取人数

全国历年参加高考人数和录取人数统计 (1977年~2010年) 时间(年)参加高考人数(万人)录取人数 (万人)录取率 (%)1977570274.7%197861040.26.6%1979468286.0%1980333288.4%1…

android xml配置,Android XML设置z-Index

基本上我有2个线性布局。用户单击按钮时,一个线性布局将展开或折叠。另一个将始终显示在顶部。这里是我的xml:Android XML设置z-Indexandroid:layout_width"fill_parent"android:layout_height"fill_parent" >android:id"id…

现代软件工程 M1 博客要求

各个小组都大致确定了自己的项目和人员分工, 这太好了。 第一个里程碑马上就要开始了。 请同学们按照下表的要求, 把各个角色, 各个阶段要做的事情都快速地用博客表达出来吧。 每个博客的截止日期是: 每日博客:第二天早上9点。 每周博客:下一周周一早上9点。 每个团队有6-7 …

android音乐进度条设计代码,【Android】Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等...

作者:程序员小冰,GitHub主页:https://github.com/QQ986945193新浪微博:http://weibo.com/mcxiaobing首先给大家看一下我们今天这个最终实现的效果图:当然,这里的进度,是我们手动触摸控制的。截图…

同学, 有板砖么?

这次 <现代软件工程> 的4 个团队要做下面的项目: 第一组: 一个BBS 的通用客户端 第二组: 挖掘学术圈内的师承关系 第三组: 真人拳皇 - 把你老板的照片变成对手, 然后给他一顿痛打 第四组: 一个叫呆呆的东东。 这些想法都各有特点&#xff0c;同学们也意识到自己…

顶级程序员的心得ndash;Coders at Work

[原文在 www.yishan.cc 连载, 现在合成一篇] 我去年读了 “Coders at Work”, 对15 位顶级程序员的采访&#xff0c; 总共600页。 从采访的模式看&#xff0c;有点像“艺术人生”&#xff0c; 一般都是音乐起&#xff0c;讲小时候的故事&#xff0c;你怎么开始写程序的? (…

android动态表格数据类型,华为运动表GT表盘主题制作教程

控件介绍运动表 GT单图控件用于显示一张静态图片&#xff0c;通常用作背景图、图标等。属性区域操作说明&#xff1a;1) 图片路径&#xff1a;点击 号图标选择图片。注&#xff1a;图片尺寸不得超过所选表盘 DPI 大小&#xff0c;如&#xff0c;选择 390 X 390 表盘&#xff0…

cnblog 的小问题 - 尽在 null 中

在Chrome 上发送消息的时候, 出来一个内容为 “null” 的错误。 期望: 至少要用一个缺省的错误信息 “网站内部错误, 请稍后再试 …” 来代替 null.

android 读后台数据,Android 模拟后台数据返回 ,便与测试

环境基于 PhpStudy8 搭建:index.php 源码:header(Content-type:text/html;charsetutf-8);//渠道分类接口$JsonFile1 new JsonFile(channellist,"channellist.json");$JsonFile2 new JsonFile(commonlist,"commonlist.json");$JsonFile3 new JsonFile(up…

送人玫瑰 手有余香

我们自从 2008 年出版了<编程之美> 后, 销量还不错。 作者们把获得的版税捐出来做一些公益活动, 帮助了两个欠发达地区的中学, 福建漳平一中和湖北五峰县一中。 两年时间过去了, 我们和这些学校也相忘于江湖。 最近我们得知 - 漳平一中的同学们在计算机比赛中获得好…

android icon 圆角半径,iOS和安卓APP启动图标的尺寸和圆角值详解

今天在APP设计交流群里&#xff0c;又有不少的初学的APP设计小伙伴都在问ios端和安卓端的启动图标尺寸大小和圆角半径大小。第一部分&#xff1a;我们先来看看iOS端的图标的尺寸和圆角大小详解A、iOS6和之前版本&#xff0c;应用图标的半径都可以通过四分之一圆角绘制出来。512…

现代软件工程 M2 博客要求

和M1 类似: 131/24Dev-History (微软软件开发管理的历史)Milestone 2 (里程碑2)博客: 列出M2 的计划, 所有的任务(task), 把bug bash 的报告分类加入TFS (作为bug), 公布人员的角色, 可以考虑在这一周开始scrum. n/a1/31Holiday Holiday假期 (各团队根据队员放假情况, 灵活安排…

炁体源流 鸿蒙,一人之下:八绝技中最强被曝光,没想到炁体源流落榜,第一在后头...

如今有很多朋友都喜欢在空下来之后看一下动漫给自己解解乏&#xff0c;相比起明星们所在的综艺和影视而言&#xff0c;动漫只要做得好&#xff0c;是不存在啥演技不好&#xff0c;外形让人不喜欢、性格太差劲、太假等等情况的。所以近年来咱们也发现越来越多青少年喜欢上了动漫…

scrumndash;yesterday once more

在敏捷开发的 SCRUM 流程中, 一个基本要求就是团队中的成员在每日例会中介绍自己昨天的进度, 今天的计划, 和遇到的困难。 下面是《现代软件工程》课程上一个学生团队在2/18 和 2/19 这两天的报告。 粗粗看去, 不禁有 “昨日重来” 的感觉。 一些同学的任务在2/18 报告的 yes…

android studio导入eclipse项目各种问题,eclipse项目导入android studio 各类问题及解决方法...

随着时间的推移&#xff0c;技术的推进&#xff0c;开发android的IDE&#xff0c;逐渐由 eclipse转移到android studio&#xff0c;但… 我们的拖延症是很严重的&#xff0c;只要eclipse能用一天就绝不迁移&#xff0c;只到有一天&#xff0c;项目越来越大&#xff0c;引入的第…

清华大学 2011 春季学期 lt;现代软件工程gt; 课程表

上课时间地点: 周一下午 1:30 – 4:50, 六教 6A/201 暂定时间表 (会根据学校放假, 老师/学生的具体要求变化): WeekDateLecture (授课)Talk (交流/演示)Projectblog requirement12/21Intro (课程简介, 分组), number game, iPad, team project, assignment of I-project. …

清华大学 lt;现代软件工程gt; 项目小组名单

下面是各个项目小组的情况, 每个小组有 6 – 10 名同学组成: no. Team NameLeaderBlog项目 (构想中… ) 1 Seven杜圆http://cnblogs.com/SE-team-2011Calendar, todo list, Lifer 2.0 2 霸王移山余江伟http://cnblogs.com/bawangyishanCalendar or 食品打分网站 or 背单词软件…

android 名片识别 简书,iOS 自己实现 名片识别 三 图片处理

主题: 图片处理声明:下面这些图片仅供学习使用0.png1.剪切图片根据矩形特征剪切图片// property (nonatomic , strong) CIImage *img;//property (nonatomic , strong) CIRectangleFeature *feature;_img [_img imageByCroppingToRect:_feature.bounds];1.png2.图形矫正根据特…

用积分来衡量博客的成绩

I was told the “积分" in CNBLOGS site is a fair reflection of the popularity and activity of a blog. The score is a linear function of the following factors: (the page view of your blogs, the comments from others to your blogs, your comments to ot…

阐述html语言的理解,大学语文课后思考题答案

. 分析“吾辈”看月与他人有何不同&#xff0c;表现了怎样的审美情趣&#xff0c;从中可看出张岱小品文的哪些特点&#xff1f;一喜喧嚣&#xff0c;一喜清幽&#xff0c;故而是两种境界&#xff0c;两种天地&#xff0c;两种情感。从中可看出作者文人情趣的流露&#xff0c;以…