無法使用節點服務器向我的 mariadb 數據庫發出請求

亞歷克斯

我目前正在學習如何設置節點服務器,我正在製作一個 api,它對託管在我的 vps 上的 mongodb 數據庫執行一些請求。

問題是,當我偵聽 POST 請求並向數據庫發出 SQL 請求時,連接超時並且服務器關閉。

我嘗試將具有所有權限的新用戶添加到 mariadb,我也嘗試使用 sequelize。

但是這些解決方案都不起作用,每次查詢我的數據庫時它仍然超時。我可以連接到 phpmyadmin 並對其進行一些請求,因此我認為我的數據庫運行良好。

這是我的代碼:


router.post('/login', async function(req,res) {
    let conn;
    try {
        // establish a connection to MariaDB
        conn = await pool.getConnection();

        // create a new query
        var query = "select * from people";

        // execute the query and set the result to a new variable
        var rows = await conn.query(query);

        // return the results
        res.send(rows);
    } catch (err) {
        throw err;
    } finally {
        if (conn) return conn.release();
    }
})

我在我的 database.js 文件中連接到我的數據庫的方式


const pool = mariadb.createPool({
    host: process.env.DATABASE_HOST,
    user: process.env.DATABASE_USER,
    password: process.env.DATABASE_PASSWORD,
    database: process.env.DATABSE_NAME,
});



// Connect and check for errors
module.exports={
    getConnection: function(){
        return new Promise(function(resolve,reject){
            pool.getConnection().then(function(connection){
                resolve(connection);
            }).catch(function(error){
                reject(error);
            });
        });
    }
}

module.exports = pool;

And my error:


Node.js v17.0.1
[nodemon] app crashed - waiting for file changes before starting...
[nodemon] restarting due to changes...
[nodemon] starting `node server.js`
Server started
/Users/alexlbr/WebstormProjects/AlloEirb/server/node_modules/mariadb/lib/misc/errors.js:61
  return new SqlError(msg, sql, fatal, info, sqlState, errno, additionalStack, addHeader);
         ^

SqlError: retrieve connection from pool timeout after 10001ms
    at Object.module.exports.createError (/Users/alexlbr/WebstormProjects/AlloEirb/server/node_modules/mariadb/lib/misc/errors.js:61:10)
    at timeoutTask (/Users/alexlbr/WebstormProjects/AlloEirb/server/node_modules/mariadb/lib/pool-base.js:319:16)
    at Timeout.rejectAndResetTimeout [as _onTimeout] (/Users/alexlbr/WebstormProjects/AlloEirb/server/node_modules/mariadb/lib/pool-base.js:342:5)
    at listOnTimeout (node:internal/timers:559:11)
    at processTimers (node:internal/timers:500:7) {
  text: 'retrieve connection from pool timeout after 10001ms',```



Thanks for you help !

西里爾·格拉茲

想到了三種可能:

  1. 數據庫名稱錯別字

    數據庫:process.env.DATABSE_NAME

    數據庫:process.env.DATAB A SE_NAME

  2. 您的環境變量設置不正確。您是否使用dotenv.env文件中加載這些

    https://www.npmjs.com/package/dotenv

如果沒有,您如何process.env在運行時設置值?

  1. 如果確實設置了環境值:
  • 驗證這些環境值是否正確
  • 驗證您的 MariaDB 服務器正在偵聽哪個接口:服務器可能正在使用bind-address配置並且僅偵聽 127.0.0.1(這是 Debian/Ubuntu 上的默認設置)
  • 您要確保服務器正在偵聽:0.0.0.0(所有接口,而不僅僅是本地主機)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

您如何實現發出異步數據庫請求的 Sveltekit Post 端點?

為什麼我收到“400:錯誤請求”但請求成功發佈到我的數據庫

在 Django 中發出 GET 請求後,如何使用用戶發送的數據填充我的表單?

無法向服務器發出 post 請求:404 錯誤

Django 數據庫訪問速度取決於請求中使用的主機

向服務器發出請求時正確使用 useEffect

無法將數據庫服務器連接到指定端口

無法將數據從反應發送到快遞服務器

在 dart 中使用標頭和查詢參數發出 http get 請求

無法使用 Spring Boot REST 服務將 BLOB 保存到數據庫

我是否需要向 Elasticsearch 發送響應搜索請求不需要的數據?

使用 PUT 請求發送多部分/表單數據在 Laravel 中不起作用

服務器成功處理了請求但是沒有返回數據

使用 IHttpFactory 注入服務時,無法在 Blazor 服務器中找到構造函數

瀏覽器(或代理)發送了此服務器無法理解的請求

在我的服務器端點中使用 await 時出現意外的變量值

無法將數據發送到 Django 中的數據庫

我需要將表數據發送到服務器中的兩個數據庫,我可以在其中選擇任何一個數據庫

EntityManager 正在阻止數據庫觸發器

如何使用郵遞員發出 POST 請求?

使用 Python 向 Google API 發出請求

使用 HttpClient 發出獲取請求

如何使用 node js 在另一個請求中發出 post 請求,express

套接字服務器無法綁定到 kafka:29092:無法分配請求的地址

使用 post 請求將圖片發送到服務器 api [FLUTTER]

無法找到實時數據庫中是否存在節點

如何修復我的代碼以使其發送 json 數據作為對郵遞員 GET 請求的響應?

如何使用 Java 11 HttpClient 庫以 GET 方法發送請求正文?

PHP mariaDB 更新數據庫中的令牌