Node.js backend: guard loadServices against missing or invalid ime.json
Los mantenedores suelen responder en 1 día
Ya se ha fusionado un pull request relacionado.
- #952 de @PCMan — fusionado
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, node.js
- Área
- backend
Línea de trabajo
Read node/loadServices.js, starting at loadServices and loadServiceById, and trace how input_methods entries are read and loaded. Check for missing directories, missing ime.json files, malformed JSON, and failed module loading. Done means invalid entries are skipped with warnings while valid services continue loading without an uncaught startup exception.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
In node/loadServices.js:L13-L17 and L33-L37, loadServices and loadServiceById iterate over entries in input_methods and directly attempt fs.readFileSync(path.join(..., 'ime.json')) followed by JSON.parse and require().
If:
input_methodsdirectory does not exist or is inaccessible,- An entry in
input_methodsis a directory without anime.jsonfile (such as.git, temporary folders, documentation dirs, or build artifacts), ime.jsoncontains malformed or unparseable JSON, or- An IME module fails to load or requires an invalid path,
the Node.js backend throws an uncaught exception on startup and terminates immediately.
Affected Files
node/loadServices.js
Proposed Fix
- Check
fs.existsSynconinput_methodsdirectory and return an empty list/null gracefully. - Verify
fs.existsSyncfor eachime.jsonbefore reading. - Wrap
JSON.parseandrequireintry...catchblocks to log warnings and continue loading other valid services rather than failing the entire server.
- Lenguaje dominante
- C++
- Estrellas
- 1.5k
- Forks
- 244
- Merge medio
- 1 d 14 h
- PR fusionados (30 d)
- 60
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de EasyIME/PIME
-
添加"麼"輕聲 注音˙ㄇㄜ 順序1Abiertochewing enhancement upstream
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
"麼" 建議加上 ai7Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
蝦米輸入法,使用 Ctrl + / 問題Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 60/100
EasyIME/PIME#753 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Chewing silently stops working (keys swallowed) if the user config folder was created by an elevated PIMELauncherPosiblemente ocupada @asdf80730 la tomó hace 7 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
-
Candidate and message windows do not adapt to Per-Monitor High DPIPosiblemente ocupada @PCMan la tomó hace 16 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
Todos los issues de EasyIME/PIME
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
meshcore-dev/MeshCore#3760 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
deepseek-ai/DeepGEMM-Ascend#29 ·
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
EchoTools/nevr-runtime#2042 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
emscripten-core/emscripten#28160 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Download size and speed show scientific notation between 1000 and 1023 unitsPosiblemente ocupada @RaphaelFakhri la tomó hoy. Abierto
Dificultad 2/5 Menos de una hora Aptitud para principiantes 88/100
kiwix/kiwix-desktop#1570 ·
Los mantenedores suelen responder en 1 día