KeystoneJS尝试将createItem()与relationShip字段一起使用

时间:2015-12-30 16:10:25

标签: javascript node.js mongodb mongoose keystonejs

我是KeystoneJS的新手,我遇到了问题: 我在导入CSV后试图在relatioship字段上使用createItem()。由于csvtojson库,我将CSV的数据转换为JSON对象,然后根据我的JSONObject创建一个Item。

这是我的关系声明:

<?xml version="1.0" encoding="ISO-8859-1"?>
 <xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:key name="montableau" match="cours" use="@sigle"/>
 <xsl:template match="universite">
 <html><body>
 <table border="1">
  <tr bgcolor="#9acd32">
        <th style="text-align:left">Sigle</th>
        <th style="text-align:left">Nombre d'étudiants</th>
        <th style="text-align:left">Moyenne du cours</th>
      </tr>
   <xsl:for-each select="//cours" >
   <xsl:sort select="@sigle" order="ascending" data-type="text" />
  <xsl:if test="generate-id(.)=generate-id(key('montableau',@sigle)[1])">
  <tr>
     <td><xsl:value-of  select="@sigle" /></td>
     <td><xsl:value-of  select="count(//cours[@sigle=current()/@sigle])" /></td>
     <td><xsl:value-of select="sum(//cours[@note=current()/@note]) div count(//cours[@note=current()/@note])"/></td>
      </tr>
</xsl:if>
 </xsl:for-each>
 </table>
</body></html>
 </xsl:template>
 </xsl:stylesheet>

这是我的项目声明:

project: { type: Types.Relationship, ref: 'Project' },

但是当我使用createItem()方法时,我在这里作为错误信息:

消息:&#39;关系信息项目包含无效的引用:&#34;测试&#34;。&#39; }

我希望我能够清楚地帮助你们,

问候。

1 个答案:

答案 0 :(得分:0)

我最终找到了解决方案,所以我给你了。 不幸的是,我没有设法使用Keystone Framework中的现有updateHandler来完成它。相反,在这里我做了什么:

我使用查询从名称中查找对象的id:

MM.YYYY

然后我用mogoose方式创建了一个对象:

var yourTableQuery = query.select('id').exec(function(err, yourTableId)

链接已完成。

希望这有助于你们中的一些人!