Я написал программу, используя Node.js, она использует MySQL из docker. Кроме того, мой node.js имеет файл Index. js, который требует ввода от пользователя, на основании которого он будет продолжать выполнять различные типы операций. Для этого мне нужно выполнить следующие команды:
1. docker-compose up --build -d
, которые будут запускать различные контейнеры.
2. docker-compose exec web sh -c "npm start"
, которые запустят приложение Node.js.
3. one
параметр, предоставленный пользователем, который будет взят по индексу. js и на основе этого параметра может быть выполнена другая операция с базой данных.
Теперь я хотел удалить эти 3 различных шага и объедините их, чтобы сделать так, чтобы пользователи могли предоставлять только однострочный запрос, и его можно было прочитать и запустить. Есть ли способ объединить эти вещи и выполнить их все вместе.
Мой index.js
файл выглядит примерно так:
const express = require('express');
const http = require("http");
const bodyParser = require('body-parser');
const app = express();
const basePath = __dirname;
const path = require('path');
const reqPath = path.join(__dirname, './');
const fs = require('fs');
const port = process.env.PORT || 9000;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
//Make NodeJS to Listen to a particular Port in Localhost
app.listen(port, function(){
getInput(function(data){
if(data.trim() === "Player")
{
console.log("ONE");
}
});
});
//function to take the input from the user and return it to calling function
function getInput(callback)
{
var standard_input = process.stdin;
standard_input.setEncoding('utf-8');
standard_input.on('data', function (data) {
callback(data);
});
}
Вот мой файл docker-compose.yaml
со всеми службами :
version: '3'
services:
db:
container_name: db
image: mysql:5.7
volumes:
- "./data/mysql:/var/lib/mysql:rw"
environment:
MYSQL_DATABASE: database
MYSQL_ROOT_PASSWORD: password
MYSQL_USER: rootuser
MYSQL_PASSWORD: password
DATABASE_HOST: 127.0.01
restart: always
web:
container_name: web
image: node:8
volumes:
- ./web:/usr/src/app
working_dir: /usr/src/app
depends_on:
- db
restart: on-failure
command: "tail -f /dev/null"
environment:
project: ${project}
type: ${type}