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()函数,但它失败了显示&#39; getProducts&#39;没有定义 谁能告诉我我做的错误?
答案 0 :(得分:2)
这里发生了什么。有很多问题,但我们会经历这些问题。
getProducts
设置到exports对象上。该文件的第二部分尝试调用一个名为getProducts
的函数,该函数未定义。您尝试调用的功能定义为exports.getProducts
,而不是getProducts
,这就是您收到未定义错误的原因。 但这仍然是错误的。更多 Product.getProducts()
。这是exports.getProducts()
。它需要一个回调参数,在getProducts
的{{1}}调用中未提供该参数。希望能帮助您找到解决方案,祝您好运!