gpt4 book ai didi

javascript - Node js Express 中的方法未定义错误

转载 作者:行者123 更新时间:2023-12-01 02:56:11 24 4
gpt4 key购买 nike

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() 函数,但由于显示“getProducts”未定义而失败谁能告诉我我犯了什么错误?

最佳答案

这就是发生的事情。有多个问题,但我们会解决它们。

  1. 您需要 ProductController.js,它运行该文件中的所有代码。 Controller 的第一个 block 将函数 getProducts 设置到导出对象上。该文件的第二部分尝试调用一个名为 getProducts 的函数,该函数未定义。您尝试调用的函数定义为 exports.getProducts,而不是 getProducts,这就是您收到未定义错误的原因。 但这仍然是错误的。更多内容见下文
  2. 在 app.js 中,您正在调用 Product.getProducts()。这是exports.getProducts()。它需要一个回调参数,但在 app.js 中调用 getProducts 时未提供该参数。

希望能帮助您找到解决方案,祝您好运!

关于javascript - Node js Express 中的方法未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46702472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com