Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.05.2023, 14:48
Новичок на форуме
Отправить личное сообщение для ganimtaer Посмотреть профиль Найти все сообщения от ganimtaer
 
Регистрация: 30.05.2023
Сообщений: 3

node:fs:759 handleErrorFromBinding(ctx) Error: EISDIR: illegal operation
Всем привет!

Помогите пожалуйста, столкнулся с ошибкой при запуске .js скрипта на сервере.

Код:
root@server:/var/www/bailanysta_c_usr/data/www/bailanysta.com/nodejs# node main.js
node:fs:759
  handleErrorFromBinding(ctx);
  ^

Error: EISDIR: illegal operation on a directory, read
    at Object.readSync (node:fs:759:3)
    at tryReadSync (node:fs:440:20)
    at Object.readFileSync (node:fs:486:19)
    at loadConfig (/var/www/bailanysta_c_usr/data/www/bailanysta.com/nodejs/main.js:50:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async init (/var/www/bailanysta_c_usr/data/www/bailanysta.com/nodejs/main.js:121:3)
    at async main (/var/www/bailanysta_c_usr/data/www/bailanysta.com/nodejs/main.js:128:3) {
  errno: -21,
  syscall: 'read',
  code: 'EISDIR'
}

Node.js v20.2.0
Ответить с цитированием
  #2 (permalink)  
Старый 30.05.2023, 15:01
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Тебе английским языком написано в чём проблема: ты пытаешься прочитать папку как будто это файл.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 30.05.2023, 17:16
Новичок на форуме
Отправить личное сообщение для ganimtaer Посмотреть профиль Найти все сообщения от ganimtaer
 
Регистрация: 30.05.2023
Сообщений: 3

Сообщение от Aetae Посмотреть сообщение
Тебе английским языком написано в чём проблема: ты пытаешься прочитать папку как будто это файл.
Прости друг, я новичок. И не совсем понимаю что сделал не так:

1. Открыл директорию где лежит main.js
2. Прописал "node main.js"

Файл ведь .js находится в этой папке, что я сделал не так?
Ответить с цитированием
  #4 (permalink)  
Старый 30.05.2023, 18:30
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Так файл main.js начинает исполняться.
А что у вас в строках 50, 121, 128 нам не ведомо.
Ответить с цитированием
  #5 (permalink)  
Старый 30.05.2023, 18:38
Новичок на форуме
Отправить личное сообщение для ganimtaer Посмотреть профиль Найти все сообщения от ganimtaer
 
Регистрация: 30.05.2023
Сообщений: 3

Сообщение от voraa Посмотреть сообщение
Так файл main.js начинает исполняться.
А что у вас в строках 50, 121, 128 нам не ведомо.
const moment = require("moment");
var fs = require('fs');
var express = require('express');
var app = express();
const path = require('path');

let ctx = {};

// var http = require('http').createServer(app);
// var io = require('socket.io')(http);
const configFile = require("./config.json")
const { Sequelize, Op, DataTypes } = require("sequelize");

// const notificationTemplate = Handlebars.compile(notification.toString());

const listeners = require('./listeners/listeners')

let serverPort
let server
let io

async function loadConfig(ctx) {
  let config = await ctx.wo_config.findAll({ raw: true })
  for (let c of config) {
    ctx.globalconfig[c.name] = c.value
  }
  ctx.globalconfig["site_url"] = configFile.site_url
  ctx.globalconfig['theme_url'] = ctx.globalconfig["site_url"] + '/themes/' + ctx.globalconfig['theme']

  ctx.globalconfig["s3_site_url"]         = "https://test.s3.amazonaws.com";
  if (ctx.globalconfig["bucket_name"] && ctx.globalconfig["bucket_name"] != '') {
      ctx.globalconfig["s3_site_url"] = "https://"+ctx.globalconfig["bucket_name"]+".s3.amazonaws.com";
  }
  ctx.globalconfig["s3_site_url_2"]          = "https://test.s3.amazonaws.com";
  if (ctx.globalconfig["bucket_name_2"] && ctx.globalconfig["bucket_name_2"] != '') {
      ctx.globalconfig["s3_site_url_2"] = "https://"+ctx.globalconfig["bucket_name_2"]+".s3.amazonaws.com";
  }
  var endpoint_url = ctx.globalconfig['ftp_endpoint']; 
  ctx.globalconfig['ftp_endpoint'] = endpoint_url.replace('https://', '');

  // if (ctx.globalconfig["redis"] === "Y") {
  //   const redisAdapter = require('socket.io-redis');
  //   io.adapter(redisAdapter({ host: 'localhost', port: ctx.globalconfig["redis_port"] }));
  // }


  if (ctx.globalconfig["nodejs_ssl"] == 1) {
    var https = require('https');
    var options = {
      key: fs.readFileSync(path.resolve(__dirname, ctx.globalconfig["nodejs_key_path"])),
      cert: fs.readFileSync(path.resolve(__dirname, ctx.globalconfig["nodejs_cert_path"]))
    };
    serverPort = ctx.globalconfig["nodejs_ssl_port"];
    server = https.createServer(options, app);
  } else {
    serverPort = ctx.globalconfig["nodejs_port"];
    server = require('http').createServer(app);
  }

}


async function loadLangs(ctx) {
  let langs = await ctx.wo_langs.findAll({ raw: true })
  for (let c of langs) {
    ctx.globallangs[c.lang_key] = c.english
  }
}


async function init() {
  var sequelize = new Sequelize(configFile.sql_db_name, configFile.sql_db_user, configFile.sql_db_pass, {
    host: configFile.sql_db_host,
    dialect: "mysql",
    logging: function () {},
    pool: {
        max: 20,
        min: 0,
        idle: 10000
    }
  });



  ctx.wo_messages = require("./models/wo_messages")(sequelize, DataTypes)
  ctx.wo_userschat = require("./models/wo_userschat")(sequelize, DataTypes)
  ctx.wo_users = require("./models/wo_users")(sequelize, DataTypes)
  ctx.wo_notification = require("./models/wo_notifications")(sequelize, DataTypes)
  ctx.wo_groupchat = require("./models/wo_groupchat")(sequelize, DataTypes)
  ctx.wo_groupchatusers = require("./models/wo_groupchatusers")(sequelize, DataTypes)
  ctx.wo_videocalls = require("./models/wo_videocalles")(sequelize, DataTypes)
  ctx.wo_audiocalls = require("./models/wo_audiocalls")(sequelize, DataTypes)
  ctx.wo_appssessions = require("./models/wo_appssessions")(sequelize, DataTypes)
  ctx.wo_langs = require("./models/wo_langs")(sequelize, DataTypes)
  ctx.wo_config = require("./models/wo_config")(sequelize, DataTypes)
  ctx.wo_blocks = require("./models/wo_blocks")(sequelize, DataTypes)
  ctx.wo_followers = require("./models/wo_followers")(sequelize, DataTypes)
  ctx.wo_hashtags = require("./models/wo_hashtags")(sequelize, DataTypes)
  ctx.wo_posts = require("./models/wo_posts")(sequelize, DataTypes)
  ctx.wo_comments = require("./models/wo_comments")(sequelize, DataTypes)
  ctx.wo_comment_replies = require("./models/wo_comment_replies")(sequelize, DataTypes)
  ctx.wo_pages = require("./models/wo_pages")(sequelize, DataTypes)
  ctx.wo_groups = require("./models/wo_groups")(sequelize, DataTypes)
  ctx.wo_events = require("./models/wo_events")(sequelize, DataTypes)
  ctx.wo_userstory = require("./models/wo_userstory")(sequelize, DataTypes)
  ctx.wo_reactions_types = require("./models/wo_reactions_types")(sequelize, DataTypes)
  ctx.wo_reactions = require("./models/wo_reactions")(sequelize, DataTypes)
  ctx.wo_blog_reaction = require("./models/wo_blog_reaction")(sequelize, DataTypes)
  ctx.wo_mute = require("./models/wo_mute")(sequelize, DataTypes)

  ctx.globalconfig = {}
  ctx.globallangs = {}
  ctx.socketIdUserHash = {}
  ctx.userHashUserId = {}
  ctx.userIdCount = {}
  ctx.userIdChatOpen = {}
  ctx.userIdSocket = []
  ctx.userIdExtra = {}
  ctx.userIdGroupChatOpen = {}

  await loadConfig(ctx)
  await loadLangs(ctx)

}


async function main() {
  await init()

  app.get('/', (req, res) => {
    res.sendFile(__dirname + '/index.html');
  });
  io = require('socket.io')(server, {
    allowEIO3: true,
    cors: {
        origin: true,
        credentials: true
    },
  });
  if (ctx.globalconfig["redis"] === "Y") {
    const redisAdapter = require('socket.io-redis');
    io.adapter(redisAdapter({ host: 'localhost', port: ctx.globalconfig["redis_port"] }));
  }
  io.on('connection', async (socket, query) => {
    await listeners.registerListeners(socket, io, ctx)
  })

  server.listen(serverPort, function() {
    console.log('server up and running at %s port', serverPort);
  });
}

main()
Ответить с цитированием
  #6 (permalink)  
Старый 30.05.2023, 19:01
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,793

ganimtaer, проверьте, что у вас в заполнено поле, к которому вы обращаетесь:
ctx.globalconfig["nodejs_key_path"]



Как вижу подобный код, так зуд начинается и хочется кричать, что js на сервере не место.
Но потом осознаю, что дело не в языке и не его окружении...

Последний раз редактировалось Nexus, 30.05.2023 в 19:05.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задания по JS. Нужна адекватная критика. lukas_aka_bo Общие вопросы Javascript 4 02.06.2018 10:39
Ошибка в коде калькулятора. Eolus Общие вопросы Javascript 0 30.11.2015 19:56
Ошибка при загрузке файла: Error: EISDIR: illegal operation on a directory, open Sigizmund2012 Node.JS 2 31.10.2015 13:01