我有一对协会.它们是多对多的,我使用显式创建的实体来加入它们,因此我可以获得关于关系的元数据.虽然它们是相同的,但是一个有效,另一个没有.更糟糕的是,上周,他们都工作了,从那时起我就没有接触过他们.在MuSQL Workbench中,我可以选择正确的数据.
当我将数据提取到数组中时,生活是美好的.当我尝试另一个时,我得到:
调用
setValue()非对象上的成员函数
当我尝试它时,我也得到它count(),访问它($blah[0])或迭代它(foreach).
当我执行:
echo get_class($inData)."<BR>";
echo get_class($inData->accountPurchaseNodes)."<BR>";
echo get_class($inData->accountPurchaseNodes[0])."<BR>";
echo "<HR>";
echo get_class($inData)." x<BR>";
echo get_class($inData->purchaseOrderNodes)."<BR>";
echo get_class($inData->purchaseOrderNodes[0])."<BR>";
echo "<HR>";
exit;
Run Code Online (Sandbox Code Playgroud)
我明白了:
GE\Entity\Purchase
Doctrine\ORM\PersistentCollection
GE\Entity\AccountPurchaseNode
GE\Entity\Purchase
Doctrine\ORM\PersistentCollection
( ! ) Fatal error: Call to a member function setValue() on a non-object in
/Users/tqwhite/Documents/webdev/goodEarth/goodearth.com/library/
Doctrine/ORM/PersistentCollection.php on line 168
Run Code Online (Sandbox Code Playgroud)
下面,我包括实体定义的相关部分.我已经烧了几个小时尝试这个和那个.我非常感谢你的建议.
这一个工作:
//==Purchase Entity=====================================
/**
* @param \Doctrine\Common\Collections\Collection $property
* @OneToMany(targetEntity="AccountPurchaseNode", mappedBy="account", cascade={"persist", "remove"});
*/
private $accountPurchaseNodes;
//in __construct()
$this->accountPurchaseNodes = new …Run Code Online (Sandbox Code Playgroud) 我在 NodeJS 工作。我有大量遗留代码,包括在许多地方使用的几个包。这段代码都是CommonJS、Node require()模块结构。
Node 现在支持 ES6。由于它是 Javascript 语言功能,我想迁移到它。
今天,我开始了一个小项目。我的小项目样板需要()几个我最喜欢的实用程序,然后说“Hello World”。我编辑它以导入所述实用程序。Node 告诉我需要将 "type":"module" 添加到我的 package.json 中,我照做了。
当我运行它时,我被告知“未定义需求”,这是指我导入的实用程序模块之一。
我推断这意味着一个项目要么是 CommonJS,要么是 ES6,而且这两者似乎永远不会相遇。我对此感到惊讶,因为这意味着我永远不会在 NodeJS 中使用 ES6,因为我永远无法更改所有内容模块()。有些甚至不是我的,有些则用于我什至不知道的项目(npm!)。
老实说,我很难相信事实是这样。我不明白 ES6 如何成为广泛使用的标准,因为如果 ES^ 和 CommonJS 不能在应用程序中一起使用。我意识到 Webpack 等将预处理代码并修改所有 require() 语句,但并不是每个人都使用这种实用程序。
我的问题是:
这个分析正确吗?
是否有一些解决方法可以让我使用两个模块系统(没有预处理器)?
我即将做出的永远不再使用 ES6 的决定是正确的吗?
我正在使用静态 URL 查询数据服务。服务器(也是节点)发送大约 955k 的 JSON 数据。
1)我可以CURL数据以获得正确的结果,即它通过JSON.parse()。
2)从节点,我可以 exec("curl ..."); 并且也得到正确的结果。
3)同时使用Request和Axios,我得到了大约600k的数据。精确的字符数每次都会发生变化。
4)使用 Axios,我将数据流式传输到文件中,并获得许多“数据”事件,并将它们连接到文件中。这也是不正确的。
5)它可以在较小的有效载荷下正常工作。
专家联合起来!!我任由你摆布。我将祈求并赞扬并感谢您的帮助。
如果没有您的帮助,我将拥有一个使用 NodeJS 中的 CURL 的生产应用程序,邪恶将会获胜。
此致, TQ White II
更新:有人要求我提供代码片段。这里是:
const datGetterWORKS_FOR_SMALL_DATA_LOADS=(element, next)=>{
const localCallback=sendToTransformerCallback(element, next);
const {url, headers}=networkSpecs.connection;
axios.get(url + element.urlSegment, {
method: 'get',
responseType: 'json',
headers: headers,
maxContentLength: 6000000,
})
.then(function (response) {
localCallback('', response, response.data)
});
}
Run Code Online (Sandbox Code Playgroud)
请注意,这是给 require('async').each() 进程的。
我有一个很久以前开始的 NodeJS 项目。在我理解 --save 标志之前,它已经安装了许多软件包。几个版本之前,npm 决定删除 package.json 中未提及的包(这是一件疯狂的事情)。这会导致一个可怕的问题。
现在我明白了 --save 并正确使用它。但是,我无法找到使用未列出的软件包更新 package.json 的方法。
有没有办法让 npm 或其他程序查看项目并添加缺少的依赖项?如果它完全重新创建依赖结构,我会很高兴。
建议?
node.js ×2
ajax ×1
axios ×1
commonjs ×1
doctrine-orm ×1
ecmascript-6 ×1
http-get ×1
httpresponse ×1
javascript ×1
json ×1
module ×1
node-modules ×1
nodes ×1
npm ×1
package.json ×1
php ×1