☰
learnyounode 第一课:HELLO WORLD 实战指南——从创建 `.js` 文件到 `console.log` 与 `verify` 校验全流程
2026/9/28 3:26:28 网站建设 项目流程
  • 教程
  • CLI

【免费下载链接】learnyounode

Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.

项目地址:https://gitcode.com/gh_mirrors/le/learnyounode
点击查看免费下载

本指南以 learnyounode 工作坊的入门练习HELLO WORLD(法语版说明 problem.fr.md)为核心,完整讲解其任务目标、编码方式与验证流程:如何创建一个.js文件、用node命令运行、借助console.log向标准输出(stdout)打印文本,并通过learnyounode verify一键校验。读完本文,你将掌握 learnyounode 工作坊「编写—运行—验证」的完整闭环,并为后续 I/O、文件系统、TCP/HTTP 等练习打下基础。


一、练习目标:向 stdout 打印 "HELLO WORLD"

HELLO WORLD 是 learnyounode 系列 13 个自学工作坊中的第一课。learnyounode.js中addAll数组将它列在首位(learnyounode.js),是整套课程的门槛级练习。

法语版题目原文要求如下(problem.fr.md):

Écrivez un programme qui dit « Bonjour, Monde » dans la console (stdout).

即:编写一个程序,在控制台(标准输出 stdout)打印「Bonjour, Monde」(HELLO WORLD)。英文版题目则明确要求输出大写文本"HELLO WORLD"(problem.md),中文版同样要求输出"HELLO WORLD"(problem.zh-cn.md)。本练习不涉及文件读写、网络或流等高级特性,核心就是「让程序产生一行标准输出」。

值得留意的是,题目对输出文本的大小写是有要求的。仓库自带的验证用例中,通过用例 valid_01.js 输出的是console.log('HELLO WORLD'),而失败用例 invalid_01.js 输出的是console.log('Hello World!')——两者文本不同(大小写与内容均有差异),由此可以推断校验逻辑会对程序的实际 stdout 输出做精确比对。

二、编写程序:创建.js文件并书写 JavaScript

按照法语文档的提示(problem.fr.md),要写一个 Node.js 程序,只需两个步骤:

  1. 创建一个以.js结尾的新文件,例如program.js;
  2. 在其中书写 JavaScript 代码。

这与在浏览器中写脚本的方式一致。文档给出的核心写法是:

console.log('text')

对于本练习,最简单的合法实现就是一行:

console.log('HELLO WORLD')

仓库自带的参考解答 solution/solution.js 正是如此:

console.log('HELLO WORLD')

这也是 valid_01.js 验证用例的完整内容——说明「一行console.log」就是该练习接受的解答形态。

console.log用法要点

console.log是 Node.js 全局对象console的方法,行为与浏览器环境一致:

  • 接受任意个参数,会按字符串形式输出到stdout(标准输出),并自动追加换行符;
  • 因此「输出到控制台」与「输出到 stdout」在本练习中是同一回事;
  • 传入的字符串原样输出,不会自动做大小写转换——这正是本练习需要自己控制输出文本的原因。

其他解法与多语言对照

仓库在不同语言目录下提供了功能等价、文本不同的参考实现,例如日语版 solution_ja/solution.js 输出console.log('こんにちは世界'),对应日语验证用例 valid_01_ja.js。这说明只要输出与所选语言题目要求一致即可通过,程序本身并不复杂到需要多余代码。

三、运行程序:使用node命令

写完.js文件后,即可用node命令执行(problem.fr.md):

$ node program.js

假设文件内容为console.log('HELLO WORLD'),终端会打印:

HELLO WORLD
  • node是 Node.js 自带的命令行解释器,需先安装 Node.js 环境;
  • 文件名不强制为program.js,可以任意命名(如hello-world.js),只要后缀为.js且与后续verify命令中传入的文件名一致即可;
  • 若程序无语法错误,node会立即执行并返回控制台;若代码有误,则会输出错误堆栈。

在正式验证前,建议先这样手动运行一次,确认 stdout 输出符合预期,这是排查问题最直接的手段。

四、验证程序:learnyounode verify

当你准备好后,运行(problem.fr.md):

$ {appname} verify program.js

这里的{appname}是工作坊框架的占位符,在本项目中即命令名learnyounode,因此实际命令为:

$ learnyounode verify program.js

验证流程的效果是:

  1. 你的程序会被自动执行并被测试;
  2. 系统生成一份测试报告;
  3. 若测试通过,课程会被标记为完成(completed)。

验证机制的源码依据

从仓库源码结构可以还原这套机制的实现脉络:

  • 练习本体 exercise.js 基于workshopper-exercise/basic构建,采用'use strict'严格模式,通过module.exports = exercise导出;basic类练习会自动执行传入的脚本并捕获其 stdout 输出用于比对;
  • 测试驱动依赖workshopper-adventure(见 package.json 的依赖清单),整个课程框架在 learnyounode.js 中初始化,支持 en、fr、zh-cn、zh-tw 等 14 种语言(learnyounode.js),法语文档正是其多语言体系的一部分;
  • 通过/失败提示分别由workshopper-adventure的pass/fail模块渲染(learnyounode.js),与文档中「报告生成、成功则标记完成」的描述对应。

验证不通过的常见情形

结合失败用例 invalid_01.js(输出'Hello World!')与文档说明,失败通常源于:

  • 输出文本与预期不一致:大小写、空格、标点或内容任何一处不符;
  • 文件未被正确创建或命名:verify找不到目标文件;
  • 语法错误:程序无法被node正常执行。

失败时你会看到 FAIL 提示及原因说明,修正后重新verify直至出现 PASS 即可。

五、完整通关流程(含安装)

把上述步骤串联起来,就是 learnyounode 的完整使用闭环(亦见 README.md):

  1. 安装:先安装 Node.js,再执行npm install -g learnyounode(README.md)。若权限不足,可加sudo前缀或先修复 npm 权限。package.json将命令入口注册为bin.learnyounode(package.json),全局安装后即可直接使用learnyounode命令。
  2. 启动:在终端运行learnyounode,进入课程选择界面(蓝色界面)。
  3. 选择练习:用方向键导航到HELLO WORLD并按回车。此时系统会打印该练习的题目说明,并将当前verify的期望输出切换为「HELLO WORLD」。
  4. 编写解答:创建program.js,写入console.log('HELLO WORLD')。
  5. 手动运行确认:node program.js应输出HELLO WORLD。
  6. 正式验证:learnyounode verify program.js,看到 PASS 即完成本课。
  7. 进入下一课:重复步骤 2-6,按顺序学习后续的 BABY STEPS、MY FIRST I/O! 等 12 个练习(完整清单见 learnyounode.js)。

六、小结

HELLO WORLD 练习虽小,却完整覆盖了 Node.js 开发中最基础的三个事实:

环节命令/写法说明
创建程序program.js文件任意.js文件即可成为 Node.js 程序
运行程序node program.js立即执行并输出 stdout
打印输出console.log('HELLO WORLD')与浏览器一致的全局 API
自动校验learnyounode verify program.js比对 stdout、生成报告、标记完成

掌握这一流程后,后续课程中涉及命令行参数(BABY STEPS)、文件系统与异步 I/O、TCP/HTTP 网络等练习,都将复用「编写—运行—验证」的同一套工作方式。建议在本地实际创建文件、运行并验证一遍,这是进入 Node.js 世界最直接的起点。

  • 教程
  • CLI

【免费下载链接】learnyounode

Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.

项目地址:https://gitcode.com/gh_mirrors/le/learnyounode
点击查看免费下载
上一篇:PredictionIO 事件服务器插件开发指南:Input Blocker 与 Input Sniffer 的完整实现与原理剖析
下一篇:TPM双通道UI设计解读:--tmux-echo参数下的tmux与shell输出分离之道

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询