- 教程
- CLI
【免费下载链接】learnyounode
Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.
本篇文章以 learnyounode 交互式课程的第一道练习HELLO WORLD(对应日文版题目 problem.ja.md)为线索,完整讲解该练习的任务要求、.js文件的创建与node命令的运行方式、console.log的标准输出写法,以及通过learnyounode verify触发自动化测试、把课程状态推进到Completed的完整流程。读完本文,你将能够独立完成该练习,并理解其背后的验证机制与仓库中的测试证据。
练习目标:向 stdout 输出"こんにちは世界"
HELLO WORLD 是 learnyounode 全部 13 道自指导式练习中的第一课。在 learnyounode.js 的练习注册列表中,它以'HELLO WORLD'的名字排在首位,之后才是BABY STEPS、MY FIRST I/O!等进阶练习。这道题的目的不是引入复杂 API,而是让学习者走通"写一个 Node.js 程序 → 用node运行 → 交给自动验证"的最小闭环。
日文版题目(exercises/hello_world/problem.ja.md)的任务表述非常直接:
コンソール (stdout) に
"こんにちは世界"と出力するアプリを書いてください。 (请编写一个向控制台 stdout 输出"こんにちは世界"的应用程序。)
也就是说,最终交付的程序必须在标准输出上精确打印日文字符串こんにちは世界。对应英文原版 problem.md 中的要求则是打印HELLO WORLD——两种语言版本任务等价,只是期望输出文本不同。
创建你的第一个 Node.js 程序
题目给出的提示说明了 Node.js 应用的最小制作方式:新建一个扩展名为.js的文件,并在其中编写 JavaScript 即可,无需任何构建步骤或额外配置。文件名本身没有强制要求(英文版提示建议命名为hello-world.js,README 的流程说明中则使用program.js),只要运行verify时传入的文件名与实际文件名一致即可。
参考实现(exercises/hello_world/solution/solution.js)只有一行代码:
console.log('HELLO WORLD')对于日文版题目,把期望输出换成对应文本即可:
console.log('こんにちは世界')console.log:与浏览器中一致的输出方式
题目特意强调"ブラウザで出力する時と同じようにコンソールに出力することができます"(可以像在浏览器中输出那样向控制台输出),说明console.log的用法在 Node.js 与浏览器环境中保持一致。在 Node.js 中,console.log会向进程的标准输出流stdout写入一行文本并自动追加换行。这正是任务所要求的输出位置。
需要注意的是,Node.js 的console.log在传入字符串字面量时会对字符串内容做原样输出,不会自动处理转义序列之外的格式化——例如你写console.log('こんにちは世界'),输出的就是这串日文,而不是带引号的 JavaScript 表达式本身。
用node命令运行程序
写完文件后,在终端中通过node命令执行它。题目给出的命令示例为:
$ node program.js执行后,终端会打印出程序通过console.log写入 stdout 的内容。可以提前用这个命令自查输出是否符合预期——若你运行的是上述日文程序,终端应当显示:
こんにちは世界这里node命令的后缀参数是 JS 文件的路径,Node.js 会加载并执行该文件。这也说明 Node.js 程序的"入口"就是一个普通的.js文件,不需要 HTML 或浏览器环境。
用learnyounode verify触发自动验证
完成编写并确认能运行之后,下一步是把程序交给 learnyounode 的验证系统。题目给出的命令如下:
$ {appname} verify program.js其中{appname}是 workshopper 系列框架提供的占位符,在实际使用中会被替换成当前工作坊的实际命令名。对本仓库而言,package.json 中bin字段将命令注册为learnyounode,因此真实命令是:
$ learnyounode verify program.js验证通过后的表现
题目明确描述了验证结果的处理方式:
テスト結果がレポートされ、合格していればメニュー画面のステータスがCompletedに変化します。 (测试结果会被报告,如果合格,菜单画面的状态将变为Completed。)
从仓库根目录的 learnyounode.png 界面截图可以看到,菜单列表中已通过的课程右侧会显示[COMPLETED]标记——这正是"状态变为 Completed"的可视化体现。而未通过时则会看到 FAIL 提示及失败原因,需要修改程序后重新运行verify直至通过。
验证机制的仓库级证据:精确文本匹配
HELLO WORLD 练习本身只有极简的定义(exercises/hello_world/exercise.js 仅一行module.exports = require('workshopper-exercise/basic')),真正的判定逻辑由 workshopper 系列基础练习组件承担,其验证依据来自test/目录下针对本练习的用例文件。
从测试用例可以确认该练习采用精确文本匹配的验证策略:
- test/hello_world/valid_01.js:
console.log('HELLO WORLD')—— 与英文版题目期望输出完全一致,属于通过用例; - test/hello_world/valid_01_ja.js:
console.log('こんにちは世界')—— 与日文版题目期望输出完全一致,属于通过用例; - test/hello_world/invalid_01.js:
console.log('Hello World!')—— 大小写(Hello World!≠HELLO WORLD)与标点(末尾多!)均与期望不符,属于失败用例。
三份测试文件共同说明:输出内容必须逐字精确匹配,大小写、空格与标点都不能有偏差。这也是为什么日文版题目要求输出こんにちは世界(不含引号、不含任何额外符号)——多一个空格或标点都可能让验证失败。因此自查输出时应复制题目中的原字符串,而不是凭记忆重敲。
从安装到完成第一课的操作闭环
为了让 HELLO WORLD 练习在真实环境跑通,结合 README.md 中的安装与操作说明,完整流程如下:
- 安装 Node.js(learnyounode 依赖它运行所有练习程序);
- 全局安装 learnyounode:
npm install -g learnyounode,若权限不足可加sudo前缀,或先修复 npm 的权限配置;安装后终端输入learnyounode即可看到与上图中类似的蓝色菜单界面; - 选中 HELLO WORLD 练习:用方向键导航、回车键进入,练习说明会打印到终端,同时
learnyounode verify会被绑定到该练习的验证逻辑上,随后应用退出、终端恢复可用; - 编写解决方案:按题目提示新建
.js文件,写入console.log('こんにちは世界')等期望输出,并用node program.js自查; - 运行
learnyounode verify program.js验证:通过则显示 PASS,菜单中该课程变为Completed;失败则显示 FAIL 与原因,修改后重试; - 进入下一课:通过后返回菜单,按从上到下的顺序选择下一道练习继续学习。
值得一提的是,learnyounode 内置了 i18n 多语言支持,learnyounode.js 中注册了en、ja、zh-cn、zh-tw等 14 种语言。这意味着日文版题目并非孤立存在,每道练习都配有对应的多语言说明与解法目录(如 exercises/hello_world/problem.zh-cn.md、exercises/hello_world/solution_ja),语言环境不同的学习者都能以同样流程完成同一道练习。
小结
HELLO WORLD 练习看似只有一行console.log,却串起了 learnyounode 的核心工作流:创建.js文件 → 用node运行 → 用verify自动比对 stdout 输出 → 通过后课程状态变为Completed。它也是理解后续所有练习的基础——从 baby_steps 起,练习开始引入命令行参数、文件系统与网络编程,但"写程序、跑起来、交给验证"的模式始终如一。完成本课后,你便已掌握 Node.js 程序最朴素的运行与自检方式,可以放心进入下一关。
- 教程
- CLI
【免费下载链接】learnyounode
Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.
相关推荐
canvas-draw进阶API:rotate与scale方法如何自由旋转缩放画布内容——终极参考手册
canvas draw进阶API:rotate与scale方法如何自由旋转缩放画布内容——终极参考手册 canvas draw 是一个基于 Vue 的 canv
教程CLIAnarlog 程序化接口风险驱动 QA 指南:CLI、Webhooks、stdio MCP、托管 Cloud API 与远程 MCP 的回归测试实战
Anarlog 程序化接口风险驱动 QA 指南:CLI、Webhooks、stdio MCP、托管 Cloud API 与远程 MCP 的回归测试实战 Anar
教程CLIlearnyounode 起步指南:用 "HELLO WORLD" 练习跑通第一个 Node.js 程序与 verify 校验流程
learnyounode 起步指南:用 "HELLO WORLD" 练习跑通第一个 Node.js 程序与 verify 校验流程 本篇文章围绕 learnyo
教程CLI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考