global

  --类似与客户端javascript运行环境中的window

process

  --用于获取当前node进程信息,一般用于获取环境变量之类的信息

console

  --node中内置的console模块,提供操作控制台的输入输出功能,常见是用方式与客户端类似

node中只有这三个是真正的全局对象,其他的一些全局对象都是模块内的伪全局对象

在查看api时,会看到如此提示,node会将方法的稳定性分为三个级别0、1、2,0代表稳定性最低,2代表稳定性最高。

  --由于一些api已经被淘汰,但是需要适应老版本,因此将这些api保留,直到使用率很低的时候才将此api进行删除。符合软件迭代规律。

  --目前4版本为长期维护版本,里面的api基本稳定、不会删,市场主流是使用4版本开发系统

process模块

  --process.arch 查询操作系统类型

  --process.argv

    --var argv = process.argv;  console.log(argv); 

    --在控制台输出

    'C:\\dev\\nodejs\\node.exe' 代表node.exe所在的目录

    'D:\\MyDrivers\\workSpace\\node\\demo1'代表执行文件所在的目录

  --当我们在REPL环境中输入指令时,eg: npm init, npm内部会对输入的指令做出判断,npm 是方法, init是参数,当参数是init时进行初始化操作, npm install jquery 则进行安装包。

  npm内部对指令做出对应的处理:

  如图所示,在控制台 输入 npm 执行文件 参数1 参数2 ... ,npm就会根据对应的参数执行操作。

Node调试

  --最简单、方便调试方式 : console.log();

  --使用debug调试,直接在控制台书写 node debug 执行文件名 便可以进入调试。

    --进入调试阶段,输入help可以 查看在cmd中的指令进行调试。

  --使用工具进行调试,使用Visual studio Code工具进行调试。

    --在进行调试之前,需要需要json文件program中的app.js,将其修改为将要进行调试的文件名即可。${workspaceRoot}代表当前执行目录根目录。

  --第三方模块提供的调试工具,需要npm download

    --$npm install node-inspector -g

    --$npm install devtool -g

简单的登录逻辑

// 输出第一个问题
process.stdout.write('请输入用户名:\n');

// var i = 0;
var isInputUsername = true;
var username = '';

// 接收用户输入
process.stdin.on('data', (input) => {

// console.log(i++);
// 要在此处知道到底input是啥?

input = input.toString().trim();

if (!username) {
if (Object.keys(users).indexOf(input) === -1) {

process.stdout.write('用户名不存在' + '\n');
process.stdout.write('请输入用户名:\n');
// isInputUsername = true;
username = '';

} else {

// console.log('存在');
process.stdout.write('请输入密码:\n');
// isInputUsername = false;
username = input;

}
} else {
// 传入的是密码,此处拿不到上次的输入,所以拿不到用户名
// console.log(11111);
if (input === users[username]) {
console.log('登陆成功');
}else{
process.stdout.write('请输入密码:\n');
}
}
});

Node笔记三的更多相关文章

  1. ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心

    作者:Grey 原文地址:ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 很多程序往 ...

  2. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  3. 《CMake实践》笔记三:构建静态库(.a) 与 动态库(.so) 及 如何使用外部共享库和头文件

    <CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...

  4. Mastering Web Application Development with AngularJS 读书笔记(三)

    第一章笔记 (三) 一.Factories factory 方法是创建对象的另一种方式,与service相比更灵活,因为可以注册可任何任意对象创造功能.例如: myMod.factory('notif ...

  5. Python 学习笔记三

    笔记三:函数 笔记二已取消置顶链接地址:http://www.cnblogs.com/dzzy/p/5289186.html 函数的作用: 給代码段命名,就像变量給数字命名一样 可以接收参数,像arg ...

  6. 《MFC游戏开发》笔记三 游戏贴图与透明特效的实现

    本系列文章由七十一雾央编写,转载请注明出处. 313239 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5 ...

  7. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  8. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  9. 构建高性能WEB站点笔记三

    构建高性能WEB站点笔记三 第10章 分布式缓存 10.1数据库的前端缓存区 文件系统内核缓冲区,位于物理内存的内核地址空间,除了使用O_DIRECT标记打开的文件以外,所有对磁盘文件的读写操作都要经 ...

随机推荐

  1. 【一天一道LeetCode】#90. Subsets II

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...

  2. HTML5 input 类型: email及url

    原文地址:HTML5′s "email" and "url" Input Types 原文日期: 2010年09月15日 翻译日期: 2013年08月13日 在 ...

  3. 怎样将Android手机弄死机?

    将Android手机弄死机目前知道有两种方式: 第一种: 以root权限在shell中执行 stop 通过 start 但是这种串口还是可以用 第二种: suecho "c" &g ...

  4. 【翻译】Ext JS最新技巧

    原文:Top Support Tips Mitchell Simoens:控制滚动指示器的自动隐藏 Sencha Touch有一个跨平台的,在所有平台看起来和工作效果都一样的滚动条.两条轴(x和y,水 ...

  5. (十五)UITableViewCell的常见属性

    UItableViewCellStyle: typedef NS_ENUM(NSInteger, UITableViewCellStyle) { UITableViewCellStyleDefault ...

  6. Linux System Programming --Chapter Nine

    这一章的标题是 "信号" ,所以本文将对信号的各个方面进行介绍,由于Linux中的信号机制远比想象的要复杂,所以,本文不会讲的很全面... 信号机制是进程之间相互传递消息的一种方法 ...

  7. 03_Android NDK中C语言调用Java代码,javah的使用,javap的使用以及生成签名,Android.mk的编写,C代码的编写

     1  案例场景,通过C语言回调Java的代码,案例的最终界面: 2  案例的代码结构如下: 3 编写DataProvider的代码: package com.example.ndkcallbac ...

  8. 《java第一季之入门篇》的想法

    学习java也有一段时间了,但是考虑到自己现在上课.复习.考试等耗费很多时间,感觉没有静下心来的时间去写一个长期的博客.计划今年7月1号开始写一套关于java的入门篇博客文章,入门篇计划这样--涵盖j ...

  9. OpenCV实现仿射变换

    什么是仿射变换?¶ 一个任意的仿射变换都能表示为 乘以一个矩阵 (线性变换) 接着再 加上一个向量 (平移). 综上所述, 我们能够用仿射变换来表示: 旋转 (线性变换) 平移 (向量加) 缩放操作 ...

  10. Linux下进程通信方式(简要概述)

    http://blog.sina.com.cn/s/blog_65c209580100u0ee.html (1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先 ...