使用FakerJS时forEach在NodeJS中不是函数错误

时间:2018-06-22 16:44:29

标签: javascript node.js faker

我正在上Udemy课程,这是我正在做的练习的代码。 Faker是从NPM库下载的软件包

var faker = require("faker");

console.log("+++++++++++++++++++");
console.log("Welcome to my shop!");
console.log("+++++++++++++++++++");
var data = faker.commerce.productName();

data.forEach(function(print){
    console.log(data);
});

我期望代码遍历变量“ data”中的每个项目并打印结果,但这是我得到的结果

+++++++++++++++++++
Welcome to my shop!
+++++++++++++++++++
/home/ubuntu/workspace/node_practice/demo_app/app.js:8
data.forEach(function(print){
     ^

TypeError: data.forEach is not a function
    at Object.<anonymous> (/home/ubuntu/workspace/node_practice/demo_app/app.js:8:6)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:389:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:504:3

我正在使用Cloud9 ide,为什么会出现此错误?

1 个答案:

答案 0 :(得分:1)

您应该阅读伪造者文档。

https://cdn.rawgit.com/Marak/faker.js/master/examples/browser/index.html#commerce

faker.commerce.productName()是一个字符串。那些没有prototype.forEach()

如果要生成一组名称,可以将Array.from()faker一起使用,如下所示:

let products = Array
  .from({length: 100})
  .map(faker.commerce.productName)

您现在拥有一个包含100个产品名称的数组