You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js使用franc、langs模块开发猜语言游戏 报pkg不可迭代错误

问题原因
  1. 报错TypeError: pkg is not iterable的触发点为代码第三行的const [langs] = pkg,你使用了数组解构语法处理langs模块的导出值,但该模块默认导出的是对象类型,不支持数组迭代解构操作。
  2. 该行代码本身无实际作用,后续你调用语言查询方法时使用的是pkg.where,并未用到解构出来的langs变量,属于多余代码。
修正方案

直接删除多余的解构行,同时可以调整导入命名让代码逻辑更清晰,修正后的完整代码如下:

import { franc } from 'franc'
// 直接将导入的模块实例命名为langs,无需使用pkg作为别名
import langs from 'langs';

const input = process.argv[2];
const langCode = franc(input);

if (langCode === 'und') {
    console.log("What language is this???")
} else {
    const language = langs.where("3", langCode);
    // 取name属性获取语言的可读名称,避免直接输出完整对象
    console.log(`I think it's ${language.name}`)
}
验证注意事项
  • 运行代码时需要传入待识别的文本参数,示例运行命令:node index.js 'こんにちは'
  • 若传入空值或无法识别的文本,franc会返回und标识,触发提示语句

内容的提问来源于stack exchange,提问作者MrAlan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:18:02