es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Puedo usar anime.js en archivos EJS con Node?

Cada vez que intento pasar la variable de animación al archivo EJS en app.js, me encuentro con el siguiente error:
“`
ReferenceError: NodeList no está definido

en toArray (C: \ Users \ 18317 \ Documents \ Desarrollo web \ Portfolio \ nodo modules \ animejs \ lib \ anime.js: 320:20)
en parseTargets (C: \ Users \ 18317 \ Documents \ Desarrollo web \ Portfolio \ nodo
modules \ animejs \ lib \ anime.js: 643:87)
en getAnimatables (C: \ Users \ 18317 \ Documents \ Desarrollo web \ Portfolio \ nodo modules \ animejs \ lib \ anime.js: 648:16)
en createNewInstance (C: \ Users \ 18317 \ Documents \ Desarrollo web \ Portfolio \ nodo
modules \ animejs \ lib \ anime.js: 844:21)
en anime (C: \ Users \ 18317 \ Documents \ Desarrollo web \ Portfolio \ nodo modules \ animejs \ lib \ anime.js: 932:18)
en C: \ Users \ 18317 \ Documents \ Desarrollo web \ Portfolio \ app.js: 14:30
en Layer.handle [como handle
request] (C: \ Users \ 18317 \ Documents \ Desarrollo web \ Portfolio \ nodo modules \ express \ lib \ router \ layer.js: 95:5)
en siguiente (C: \ Users \ 18317 \ Documents \ Desarrollo web \ Portfolio \ nodo
modules \ express \ lib \ router \ route.js: 137:13)
en Route.dispatch (C: \ Users \ 18317 \ Documents \ Desarrollo web \ Portfolio \ nodo modules \ express \ lib \ router \ route.js: 112:3)
en Layer.handle [como handle
request] (C: \ Users \ 18317 \ Documents \ Desarrollo web \ Portfolio \ nodo_modules \ express \ lib \ router \ layer.js: 95:5)

Estoy usando <script src = " anime.min.js "> < / script > en mi archivo header.ejs (parcial) y lo siguiente:

const anime = require (‘ animejs & #39;);

var animation = anime ({targets: & # 39; p & # 39 ;, translateX: 250, rotate:
‘1turn’, backgroundColor: ‘# 20c997’, duration: 8000, loop: true});

const app = express ();

app.set (“motor de vista”, “ejs”); app.use (express.static (“public”));
app.use (bodyParser.urlencoded ({extended: true}));

app.get (“/”, function (req, res) {res.render (“home”, {utils:
animación});});

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que hay un problema con la biblioteca anime.js que se está utilizando en el proyecto. Específicamente, parece ser un problema con la función toArray, que está generando un ReferenceError porque NodeList no está definido.

    Una posible solución es asegurarse de que el archivo anime.min.js se incluya correctamente en el proyecto y se cargue antes del archivo app.js. También vale la pena verificar si hay otros scripts que puedan entrar en conflicto con anime.js.

    Otro problema potencial es la forma en que se está pasando la variable animation al archivo EJS. En la función res.render(), se está pasando utils como el nombre de variable para animation, lo que podría estar causando problemas al intentar hacer referencia a ella en el archivo EJS.

    Para resolver este problema, intente cambiar utils a animation en la función res.render() y asegúrese de que el nombre de variable coincida con el que se está utilizando en el archivo EJS. Por ejemplo:

    app.get('/', function(req, res) {
        res.render('home', { animation: animation });
    });
    

    Luego, en el archivo EJS, puede hacer referencia a animation de la siguiente manera:

    <script>
        const animation = <%= JSON.stringify(animation) %>;
    </script>
    

    Esto pasará el objeto animation al archivo EJS como una cadena JSON, que luego se puede analizar como un objeto JavaScript y usar en su código.

Comments are closed.