nodejs学习笔记-console基本方法的使用

本文介绍了Node.js中控制台的基本使用方法,包括标准输入输出、时间测量、堆栈跟踪及断言等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

javascript// console.log()用于标准输入流的输出
console.log('console');

// 输入命令:node console.js 
// 输出结果:console

// 输入命令:node console.js 1 > info.log 
// 输出结果:console信息输入到info.log文件中 
// 1代表重定向标准输出流

// 输入命令:node console.js 2 > error.log 
// 2代表重定向标准错误输出流
console.error('error');

// warn和error方法功能一样
console.warn();

查看对象里的内容并输出:

javascript
var user = new Object(); user.name = 'mark'; user.getName = function() { return this.name; } user.setName = function(name) { this.name = name; } console.dir(user);

返回开始与结束之间的毫秒数:

javascript// console.time()标记开始时间
// console.timeEnd()标记结束时间
// 方法可以传入任何参数,但开始时间与结束时间参数必须一致
console.time('mark');
for (var i = 0; i < 100000; i++) {
    console.log(i);
}
console.timeEnd('mark');

将当前位置的栈信息作为标准错误信息进行输出:

javascriptvar user = new Object();
user.name = 'mark';
user.getName = function() {
    return this.name;
}
user.setName = function(name) {
    this.name = name;
}
console.trace('trace');

对一个表达式结果进行评估,如果表达式为false则输出消息字符串并抛出AssertionError异常:

javascriptconsole.assert(1 == 1, 'assert');

显示所有nodejs中的全局变量、函数、对象:

javascriptconsole.log(global);
输出结果:
{ DTRACE_NET_SERVER_CONNECTION: [Function],
  DTRACE_NET_STREAM_END: [Function],
  DTRACE_NET_SOCKET_READ: [Function],
  DTRACE_NET_SOCKET_WRITE: [Function],
  DTRACE_HTTP_SERVER_REQUEST: [Function],
  DTRACE_HTTP_SERVER_RESPONSE: [Function],
  DTRACE_HTTP_CLIENT_REQUEST: [Function],
  DTRACE_HTTP_CLIENT_RESPONSE: [Function],
  global: [Circular],
  process: 
   { title: 'node',
     version: 'v0.12.4',
     moduleLoadList: 
      [ 'Binding contextify',
        'Binding natives',
        'NativeModule events',
        'NativeModule util',
        'NativeModule buffer',
        'Binding buffer',
        'Binding smalloc',
        'NativeModule path',
        'NativeModule module',
        'NativeModule vm',
        'NativeModule assert',
        'NativeModule fs',
        'Binding fs',
        'Binding constants',
        'NativeModule stream',
        'NativeModule _stream_readable',
        'NativeModule _stream_writable',
        'NativeModule _stream_duplex',
        'NativeModule _stream_transform',
        'NativeModule _stream_passthrough',
        'NativeModule smalloc',
        'NativeModule console',
        'Binding tty_wrap',
        'NativeModule tty',
        'NativeModule net',
        'NativeModule timers',
        'Binding timer_wrap',
        'NativeModule _linklist',
        'Binding cares_wrap',
        'Binding uv',
        'Binding pipe_wrap',
        'Binding tcp_wrap',
        'Binding stream_wrap',
        'Binding signal_wrap' ],
     versions: 
      { http_parser: '2.3',
        node: '0.12.4',
        v8: '3.28.71.19',
        uv: '1.5.0',
        zlib: '1.2.8',
        modules: '14',
        openssl: '1.0.1m' },
     arch: 'x64',
     platform: 'darwin',
     argv: [ 'node', '/Users/demacia/nodejs-mark/console.js' ],
     execArgv: [],
     env: 
      { TMPDIR: '/var/folders/hz/gn_dy38x0g124hqsj9ymfxfh0000gn/T/',
        XPC_FLAGS: '0x0',
        Apple_PubSub_Socket_Render: '/private/tmp/com.apple.launchd.OMKUZQmKzc/Render',
        TERM: 'xterm-256color',
        SSH_AUTH_SOCK: '/private/tmp/com.apple.launchd.HU1zMSvblJ/Listeners',
        TERM_PROGRAM: 'Apple_Terminal',
        XPC_SERVICE_NAME: '0',
        TERM_PROGRAM_VERSION: '343.7',
        SHLVL: '2',
        PWD: '/Users/demacia/nodejs-mark',
        _: '/usr/local/bin/node',
        TERM_SESSION_ID: 'FB18D939-2AFD-4756-B70E-9049EF73747C',
        __CF_USER_TEXT_ENCODING: '0x1F5:0x19:0x34',
        SHELL: '/bin/zsh',
        HOME: '/Users/demacia',
        LOGNAME: 'demacia',
        USER: 'demacia',
        PATH: '/Users/demacia/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin',
        OLDPWD: '/Users/demacia',
        ZSH: '/Users/demacia/.oh-my-zsh',
        PAGER: 'less',
        LESS: '-R',
        LC_CTYPE: '',
        LSCOLORS: 'Gxfxcxdxbxegedabagacad' },
     pid: 6187,
     features: 
      { debug: false,
        uv: true,
        ipv6: true,
        tls_npn: true,
        tls_sni: true,
        tls_ocsp: true,
        tls: true },
     _needImmediateCallback: false,
     execPath: '/usr/local/bin/node',
     debugPort: 5858,
     _startProfilerIdleNotifier: [Function: _startProfilerIdleNotifier],
     _stopProfilerIdleNotifier: [Function: _stopProfilerIdleNotifier],
     _getActiveRequests: [Function: _getActiveRequests],
     _getActiveHandles: [Function: _getActiveHandles],
     reallyExit: [Function: reallyExit],
     abort: [Function: abort],
     chdir: [Function: chdir],
     cwd: [Function: cwd],
     umask: [Function: umask],
     getuid: [Function: getuid],
     setuid: [Function: setuid],
     setgid: [Function: setgid],
     getgid: [Function: getgid],
     getgroups: [Function: getgroups],
     setgroups: [Function: setgroups],
     initgroups: [Function: initgroups],
     _kill: [Function: _kill],
     _debugProcess: [Function: _debugProcess],
     _debugPause: [Function: _debugPause],
     _debugEnd: [Function: _debugEnd],
     hrtime: [Function: hrtime],
     dlopen: [Function: dlopen],
     uptime: [Function: uptime],
     memoryUsage: [Function: memoryUsage],
     binding: [Function: binding],
     _linkedBinding: [Function: _linkedBinding],
     _setupDomainUse: [Function: _setupDomainUse],
     _events: { SIGWINCH: [Function] },
     _rawDebug: [Function],
     domain: null,
     _maxListeners: undefined,
     EventEmitter: 
      { [Function: EventEmitter]
        EventEmitter: [Circular],
        usingDomains: false,
        defaultMaxListeners: 10,
        init: [Function],
        listenerCount: [Function] },
     _fatalException: [Function],
     _exiting: false,
     assert: [Function],
     config: { target_defaults: [Object], variables: [Object] },
     nextTick: [Function: nextTick],
     _tickCallback: [Function: _tickCallback],
     _tickDomainCallback: [Function: _tickDomainCallback],
     stdout: [Getter],
     stderr: [Getter],
     stdin: [Getter],
     openStdin: [Function],
     exit: [Function],
     kill: [Function],
     addListener: [Function],
     on: [Function],
     removeListener: [Function],
     mainModule: 
      { id: '.',
        exports: {},
        parent: null,
        filename: '/Users/demacia/nodejs-mark/console.js',
        loaded: false,
        children: [],
        paths: [Object] } },
  GLOBAL: [Circular],
  root: [Circular],
  Buffer: 
   { [Function: Buffer]
     poolSize: 8192,
     isBuffer: [Function: isBuffer],
     compare: [Function: compare],
     isEncoding: [Function],
     concat: [Function],
     byteLength: [Function] },
  setTimeout: [Function],
  setInterval: [Function],
  clearTimeout: [Function],
  clearInterval: [Function],
  setImmediate: [Function],
  clearImmediate: [Function],
  console: [Getter] }
### Node.js 学习笔记与教程 #### 初识 Node.js 和其核心概念 Node.js 是一种基于 Chrome V8 引擎构建的 JavaScript 运行环境,允许开发者使用 JavaScript 创建高性能服务器端应用程序。它通过事件驱动 I/O 模型提供高效的性能表现[^1]。 在浏览器环境中,JavaScript 的组成主要包括 ECMAScript 标准、DOM(文档对象模型)、BOM(浏览器对象模型),以及一些特定于浏览器的功能扩展。而在 Node.js 中,则引入了诸如 `fs` 文件系统模块、`http` HTTP 请求处理模块等内置工具来补充功能需求。 #### 内置模块介绍 以下是几个常用的 Node.js 内置模块及其基本用途: - **FS 模块**: 提供文件系统的访问能力,可以实现同步或异步方式下的文件读取/写入操作。 ```javascript const fs = require('fs'); // 同步读取文件内容 let data = fs.readFileSync('./example.txt', 'utf8'); console.log(data); ``` - **Path 模块**: 处理并转换文件路径字符串。 ```javascript const path = require('path'); let filePath = path.join(__dirname, 'subdir', 'file.txt'); console.log(filePath); ``` - **HTTP 模块**: 构建 Web 服务的基础组件之一。 ```javascript const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }); server.listen(3000, 'localhost'); console.log('Server running at http://localhost:3000/'); ``` #### 模块化开发 为了更好地组织代码结构,在 Node.js 开发过程中推荐采用模块化的编程方法。目前主流有两种规范被广泛接受和支持——CommonJS 和 ES Modules (ECMAScript Module)[^3]。 对于 CommonJS 来说,默认情况下每个 `.js` 文件都是独立的一个模块;如果想让其他地方能够调用当前定义好的函数或者变量的话就需要显式地将其暴露出去(`module.exports`) 并且由另一方接收 (`require()`) 。而对于 ES6+ 版本则提供了更加简洁优雅的方式来进行默认导出(default export)/命名导出(named exports),并通过 import 关键字完成相应加载过程。 #### NPM 工具链概述 NPM 不仅作为全球最大的开源库生态系统存在,同时也是 Node.js 应用程序的主要包管理解决方案。利用 npm 我们不仅可以轻松安装第三方依赖项还可以发布自己的作品到社区共享给更多的人群受益。 另外值得一提的是 nodemon —— 一款非常实用的小插件用于监控源码变动自动重启应用进程从而极大提升调试效率。 ```bash # 安装 nodemon npm install --save-dev nodemon # 使用 nodemon 启动项目 npx nodemon app.js ``` #### 部署至云端平台 当本地测试完成后可以选择合适的服务提供商将自己的站点部署上线运行起来。比如 Heroku 就是非常受欢迎的选择因为它简单易用而且免费额度足以满足初期阶段的需求[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值