我没有做对。
尝试在我的json模型模板文件中创建2个数据模型实例并使用它们,但我显然没有得到2个不同的模型实例。
myModel.json
{
"id": null
}
myNodeModule.js
var myModel = require('../../entities/myModel');
module.exports = {
find: function *(id){
var myModelInstance1 = myModel;
myModelInstance1.id = 1;
var myModelInstance12 = myModel;
myModelInstance12.id = 2;
found.push(myModelInstance11);
found.push(myModelInstance12);
console.log("id: " + found[0].id);
}
问题:它记录" 2"因为某种原因它应用了myModel1的最后一次初始化。
那么如何创建myModel.json的两个独立对象实例?
答案 0 :(得分:0)
改为创建一个函数,它返回对象并调用它。
function myModelFact(){
return {
"id": null
}
}
答案 1 :(得分:0)
问题是需要JSON文档创建一个对象实例,但返回对该实例的引用(对象通过引用传递/分配)。这意味着当您将myModel
(它是对象的引用)分配给另一个变量时,您实际上是在指定同一个对象的指针。因此,如果修改引用,则单个实例会更改,并且该更改将反映对该实例的所有引用。
尝试这样的事情:
function _getModelInstance() {
return require('../../entities/myModel');
}
module.exports = {
find: function(id){
var myModelInstance1 = _getModelInstance();
myModelInstance1.id = 1;
var myModelInstance12 = _getModelInstance();
myModelInstance12.id = 2;
found.push(myModelInstance11);
found.push(myModelInstance12);
console.log("id: " + found[0].id);
}
此代码将根据需要从JSON文档创建对象的新实例。