我正在尝试从Crud.js文件访问导出的类,但出现此错误。我的目标是执行sql查询。
错误:
TypeError: Crud.Select_products is not a function
at C:\xampp\htdocs\react\crud\server.js:7:24
at Layer.handle [as handle_request] (C:\xampp\htdocs\react\crud\node_modules\express\lib\router\layer.js:95:5)
at next (C:\xampp\htdocs\react\crud\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\xampp\htdocs\react\crud\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\xampp\htdocs\react\crud\node_modules\express\lib\router\layer.js:95:5)
at C:\xampp\htdocs\react\crud\node_modules\express\lib\router\index.js:281:22
at Function.process_params (C:\xampp\htdocs\react\crud\node_modules\express\lib\router\index.js:335:12)
at next (C:\xampp\htdocs\react\crud\node_modules\express\lib\router\index.js:275:10)
at expressInit (C:\xampp\htdocs\react\crud\node_modules\express\lib\middleware\init.js:40:5)
at Layer.handle [as handle_request] (C:\xampp\htdocs\react\crud\node_modules\express\lib\router\layer.js:95:5)
我正在使用10.15.0版中的NodeJ,我已经尝试过更改导出方式,但是仍然有相同的错误。
Server.js
var express = require('express');
var Crud = require('./database/Crud');
var app = express();
app.get('/api/home', function(req, res){
let results = Crud.Select_products();
res.send(results);
});
app.listen(5000, () => console.log('Escutando na porta 5000'));
Crud.js
var Connect = require('./Connect');
Class Crud {
constructor(){
Connect.Connecting();
}
Select_products(where){
if(where !== undefined){
let sql = 'Select * from produtos where id_produto = ?';
Connect.query(sql, [where], function(err, result){
if(err) throw err;
return result;
});
}else{
Connect.query('Select * from produtos', function(err, result){
if(err) throw err;
return result;
});
}
}
}
module.exports = Crud;
我希望从数据库接收数据。
答案 0 :(得分:0)
Crud是一个类,您正在尝试访问方法,方法属于实例。
您可以导出一个实例,创建一个单例模式,例如:
module.exports = new Crud();
或者您可以在server.js
上创建一个实例,然后调用该方法
var Crud = require('./database/Crud');
var crud = new Crud();
app.get('/api/home', function(req, res){
let results = crud.Select_products();
res.send(results);
});
此外,当您开始使用此工具时,您将意识到自己还有更多问题。您的Select_products()
函数不返回任何内容。如果您正在使用的库支持promises,您可能要向其发送一个回调函数,或使用async/await
和promises