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('请输入用户名:
');
// 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('用户名不存在' + '
');
process.stdout.write('请输入用户名:
');
// isInputUsername = true;
username = '';
} else {
// console.log('存在');
process.stdout.write('请输入密码:
');
// isInputUsername = false;
username = input;
}
} else {
// 传入的是密码,此处拿不到上次的输入,所以拿不到用户名
// console.log(11111);
if (input === users[username]) {
console.log('登陆成功');
}else{
process.stdout.write('请输入密码:
');
}
}
});