【发布时间】:2016-07-20 17:04:26
【问题描述】:
我有一个简单的 Node.js 驱动的自定义静态站点生成器设置,我向它传递了两个选项,一个简单的模板和一些用于站点数据的 JSON。我有以下数据文件:
// collections.js
var collection = require('./collection');
module.exports = [
collection
]
// collection.js
var product = require('./product');
module.exports = {
"id": 1,
"title": "Collection",
"products": [
product
]
}
// product.js
var collections = require('./collections');
module.exports = {
"id": 4759071046,
"title": "Product",
"collections": collections,
"price": 2000,
"content": "This is a test product."
};
编辑:这不是一个包含多个module.exports 的大文件,它们是单独的文件;当你看到// collections.js时,这表示它是一个名为collections.js的单独文件,当你看到// collection.js时,这表示它是一个名为collection.js的单独文件,当你看到// product.js时,这表示它是一个名为 product.js 的单独文件
我对通过require() 加载模块很陌生,所以我认为我在某处发生了某种依赖循环错误,但我没有收到任何错误,只是当我console.log() 数据时数据结构不正确:
// collections.js
[
{
"id": 1,
"title": "Collection",
"products": [
{
}
]
}
]
// collection.js
{
"id": 1,
"title": "Collection",
"products": [
{
}
]
}
// product.js
{
"id": 4759071046,
"title": "Product",
"collections": [
{
"id": 1,
"title": "Collection",
"products": [
{
}
]
}
],
"price": 2000,
"content": "This is a test product."
}
注意到空的products 对象数组了吗?我不知道为什么会这样,任何帮助将不胜感激!
【问题讨论】:
-
是的,这里肯定有循环依赖。为什么要使用这种奇怪的对象布局?
-
这里有一个循环依赖。产品需要集合,集合需要集合,集合需要产品等等。弄清楚你的顶级对象应该是什么,然后它应该包含什么。
标签: javascript node.js object require javascript-objects