我是 nodejs 的新手,試圖使用這個庫從 mysql 讀取資料。我正在使用快速框架。
這是我的路由器/index.js 檔案中的代碼
router.get('/', async function(req, res, next) {
console.log(query);
let data = await query();
console.log(data);
res.send();
});
從db讀取資料的代碼(連接到db沒有問題)。
const query = async (table, fields ) => {
try {
const results = await pool.query('SELECT * FROM country limit 1');
return results
} catch(err) {
return err;
}
}
以下是由 console.log(data) 記錄的
<ref *1> Query {
_events: [Object: null prototype] {},
_eventsCount: 0,
_maxListeners: undefined,
_callback: undefined,
_callSite: Error
at Pool.query (/Users/siva/Projects/api/node_modules/mysql/lib/Pool.js:199:23)
at query (/Users/siva/Projects/api/db/index.js:4:36)
at /Users/siva/Projects/api/routes/index.js:7:20
at Layer.handle [as handle_request] (/Users/siva/Projects/api/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/siva/Projects/api/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/siva/Projects/api/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/siva/Projects/api/node_modules/express/lib/router/layer.js:95:5)
at /Users/siva/Projects/api/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/Users/siva/Projects/api/node_modules/express/lib/router/index.js:335:12)
at next (/Users/siva/Projects/api/node_modules/express/lib/router/index.js:275:10),
_ended: false,
_timeout: undefined,
_timer: Timer { _object: [Circular *1], _timeout: null },
sql: 'SELECT * FROM country limit 1',
values: undefined,
typeCast: true,
nestTables: false,
_resultSet: null,
_results: [],
_fields: [],
_index: 0,
_loadError: null,
[Symbol(kCapture)]: false
}
有人可以幫我解決這個問題嗎?
uj5u.com熱心網友回復:
mysqlNPM 上的庫不支持 Promise,因此不適用于await. 您將需要實作對 mysql 的承諾支持的多個包裝器之一或制作您自己的包裝器。NPM 上一個流行的模塊是一個名為 fork 的模塊mysql2(他們現在正在與 mysqljs 組織協調以與mysql專案共享公共代碼)。有了mysql2你可以這樣做:
const mysql = require('mysql2/promise');
然后,您可以使用async/awaitmysql 呼叫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/362017.html
下一篇:全域“視窗”物件
