方法

2017-10-12 5 views
0

Controller.js方法

<pre> 

    exports.getProducts = function(callback) 
    { 
     Product.find({},function(err,products) 
     { 
      if(products === null) 
      { 
       console.log('Products not available in DB');     
      } 
      if(err) 
      { 
       console.log(err); 
       callback(err,null); 
      } 
      else{callback(null,products)};   
     });  
    } 
    getProducts(function (err,data){ 
     if(err){console.error(err);} 
     else{console.log(data);} 
    }); 

</pre> 

App.js

<pre> 

    var express = require('express'); 
    var app = express(); 
    var port = process.env.PORT || 3000; 
    var bodyParser = require('body-parser'); 
    var cors = require('cors'); 
    var cookieParser = require('cookie-parser'); 
    var session = require('express-session'); 
    var morgan = require('morgan'); 
    app.use(cors()); 

    var Product = require('./server/controllers/ProductController'); 
    Product.save(); 
    console.log(Product.getProducts()); 

</pre> 

app.jsから私はgetProductsを実行しようとしています()関数は、ノードのjs Expressでエラーが定義されていません'getProducts'が定義されていないことを示すことで失敗しています 誰でも私が行った間違いを教えてもらえますか?

+1

'Controller.js'または' ProductController.js'ですか? –

+0

ProductController.js –

答えて

2

ここには何が起こっているのですか?複数の問題がありますが、それらを処理します。

  1. あなたはは、そのファイル内のすべてのコードを実行ProductController.jsを、必要としています。コントローラの最初のブロックは、エクスポートオブジェクトにgetProductsという機能を設定します。そのファイルの2番目の部分は、getProductsという未定義の関数を呼び出そうとします。呼び出ししようとしている関数は、getProductsではなく、exports.getProductsと定義されています。そのため、定義されていないエラーが発生しています。 これはまだ間違っています。詳細はこちら
  2. app.jsでは、Product.getProducts()に電話しています。これはexports.getProducts()です。コールバック引数をとります。これはgetProductsへのコールでは提供されていません。app.jsです。

あなたが解決策、幸運を見つけるのに役立つ希望!

+0

controller.jsファイルがどこでも 'Product'を定義していないことを忘れないでください。 –