尝试使用 node.js javascript 文件连接到 Mysql 数据库的 docker-compose 实例

Attempting to connect to docker-compose instance of Mysql database with node.js javascript file

提问人:Mark account 提问时间:11/11/2023 更新时间:11/11/2023 访问量:12

问:

我的 node.js 应用程序似乎无法找到 mysql 数据库。几秒钟后,它也会在使用 docker-compose up -d 运行后继续退出。 就我而言,我的docker-compose.yml是完全正确且没有错误的,因为数据库运行没有错误。 我已经尝试了所有方法,但完全被难住了。

这是我的docker-compose.yml:

version: '3.9'
services:
  mysql1:
    image: mysql:5.7
    container_name: db1
    environment:
      MYSQL_ROOT_PASSWORD: admin
      MYSQL_DATABASE: 'db'
      MYSQL_USER: 'user'
      MYSQL_PASSWORD: 'password'

  node1:
    build: .
    container_name: nodejs1
    ports:
      - "80:8080"
    depends_on:
      mysql1:
        condition: service_started
    stdin_open: true
    tty: true

和我的服务器.js:

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 8080;
var mysql = require('mysql');

var connection = mysql.createConnection({
    host: 'mysql1',
    user : 'user',
    password : 'password',
    database: 'db'
});

connection.connect();

app.get('/init', (req,res) => {

    connection.query(`CREATE DATABASE posts`,
    function (error,result) {
    if (error) console.log(error);
    });
    
    connection.query(`USE posts`,
    function (error, results) {
    if (error) console.log(error);
    });
    
    connection.query(`CREATE TABLE mytable
    ( id int unsigned NOT NULL auto_increment, username varchar(100)
    NOT NULL,
    email varchar(100) NOT NULL,
    PRIMARY KEY (id)
    )`, function (error,result) {
    });
});

app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
  });
mysql 节点 .js docker-compose

评论


答: 暂无答案