2017-06-22 21 views
0

私はNode.jsとSails.jsフレームワークの両方が初めてです。私は、フレームワークを使ってWebサイト/アプリケーションを構築しようとしていますが、モデルパーツを期待どおりに動作させるのに問題があります。私はドキュメントをかなり見てきましたが、まだこの基本的な作業を実行できません。私はPostgreSQLアダプタを使用しています。次のようにSails.js/Waterline - Createはモデル上の関数ではありません。

スタックは、(API /モデルフォルダに)

TypeError: Fragrance.create is not a function\n at Object.module.exports.index (/home/kelly/workspace/Hawthorne-Acres/api/controllers/HomeController.js:16:19)\n at wrapper (/usr/local/lib/node_modules/sails/node_modules/@sailshq/lodash/lib/index.js:3250:19)\n at routeTargetFnWrapper (/usr/local/lib/node_modules/sails/lib/router/bind.js:181:5)\n at callbacks (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:164:37)\n at param (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:138:11)\n at param (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:135:11)\n at pass (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:145:5)\n at nextRoute (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:100:7)\n at callbacks (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:167:11)\n at alwaysAllow (/usr/local/lib/node_modules/sails/lib/hooks/policies/index.js:224:11)\n at routeTargetFnWrapper (/usr/local/lib/node_modules/sails/lib/router/bind.js:181:5)\n at callbacks (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:164:37)\n at param (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:138:11)\n at param (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:135:11)\n at pass (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:145:5)\n at nextRoute (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:100:7)\n at callbacks (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:167:11)\n at module.exports (/usr/local/lib/node_modules/sails/lib/hooks/cors/clear-headers.js:14:3)\n at routeTargetFnWrapper (/usr/local/lib/node_modules/sails/lib/router/bind.js:181:5)\n at callbacks (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:164:37)\n at param (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:138:11)\n at pass (/usr/local/lib/node_modules/sails/node_modules/@sailshq/express/lib/router/index.js:145:5)" 

Fragrance.js:

module.exports = { 

    attributes: { 
     fragranceName: { 
      type: 'string', 
      required: true 
     }, 

     listings: { 
      collection: "listing", 
      via: "fragrance" 
     } 
    } 
}; 

/** 
* HomeController 
* 
* @description :: Server-side logic for managing Homes 
* @help  :: See http://sailsjs.org/#!/documentation/concepts/Controllers 
*/ 
var Fragrance = require("../models/Fragrance"); 

module.exports = { 



    /** 
    * `HomeController.Index()` 
    */ 
    index: function(req, res) { 
     Fragrance.create({ fragranceName: 'Vanilla' }).exec(function(err, rec) { 
      console.log(rec.id); 
     }); 
     return res.render("index", { title: "Welcome" }); 

    }, 


    /** 
    * `HomeController.About()` 
    */ 
    about: function(req, res) { 
     console.log("About place"); 
     return res.render("about", { title: "About" }); 
    }, 


    /** 
    * `HomeController.Contact()` 
    */ 
    contact: function(req, res) { 
     return res.render("contact", { title: "Contact" }); 
    } 
}; 

関数を呼び出すコントローラたぶん明白なことですが、私は自分自身でそれを理解する努力をしましたが、成功することはありません。このように、どんな助けも高く評価されます。

ありがとうございました。

答えて

1

modelフォルダのモデルは、グローバルに入手できます。 config/globals.jsの機能を無効にすることができます。

Fragrance.create方法

または

sails.models.fragrance.create方法(モデル名は小文字であることに注意してください。)

:だから、あなたは経由でレコードを作成することができます

var Fragrance = require("../models/Fragrance");

をドロップすることができます

個人的には、私は第2のパターンを好み、世界中のモデル

+1

回答と基本的な説明の両方に感謝します。それは今働いている。 – KellyMarchewa

関連する問題