背景:我正在使用帶有nodejs的mysql。我希望經常使用嵌套查詢,因此為了避免“回調地獄”,我制作了一個簡單的類,其中包含由 Promises 支持的函數。問題:將我的類導入我想要的文件后,我嘗試在路由query(sql, params){...}內的 POST 請求中調用我的函數/login,但是我收到以下錯誤:TypeError: Database.query is not a function 注意:我的所有代碼都已編譯,因此我的文件位置沒有問題進口。當我運行程序時會出現問題。代碼:Database.js: 這就是我要導出到我的api.js文件中的內容。var mysql = require('mysql');const configuration = { host: 'localhost', user: 'root', password: '******', database: 'myDB'}class Database { constructor(configuration) { this.connection = mysql.createConnection(configuration) // } query(sql, params) { return new Promise(function(resolve, reject) { this.connection.query(sql, params, function(err, result) { if(err) return reject(err) resolve(result) }) }) }}module.exports = Databaseapi.js:這是我的應用程序后端邏輯的位置。...var Database = require('../classes/Database')//This is the route responsible for invoking my database queryrouter.post('/login', function(req,res,next) { const query1 = "SELECT * FROM users WHERE username = ? AND pass = ?" Database.query(query1, [req.body.username, req.body.password]) .then((result) => { if (result.length) { if (req.session.username) { res.send('You are logged in') } else { req.session.username = req.body.username res.send('You have successfully logged in') } } else { res.send('Incorrect Credentials') } }).catch((err) => console.log(err)) })
您如何正確導出/導入 NodeJs 類及其各自的功能
瀟瀟雨雨
2022-07-08 10:44:34