• Почему express отдает пустой req.body?

    @grisha228
    Вариант N1

    Подключить body-parser

    Код
    npm install body-parser

    const express = require('express');
    const { v4: uuidv4 } = require('uuid');
    const app = express();
    const port = 3000;
    const bodyParser = require('body-parser');
    
    app.use(express.urlencoded({ extended: false }))
    app.use(express.json());
    
    app.use(bodyParser.json())
    
    app.post('/api/text',(req, res) => {
        console.log("---", req.body);
        res.send("text");
    
    })
    
    app.listen(port, () => {
        console.log(`Example app listening on port ${port}`)
    })


    Вариант N2

    При помощи chunk.
    ВАЖНО. Вывод делать внутри end или переделать код в асинхронную функцию и делать await для on('data'). В данном случае body можно вызвать только внутри:
    req.on('end', () => {
            console.log("---", body);
        });

    в ином случае он будет пустой, тк body не успевает записаться, а on.('end') выполняется.

    Код
    const express = require('express');
    const { v4: uuidv4 } = require('uuid');
    const app = express();
    const port = 3000;
    
    app.use(express.urlencoded({ extended: false }))
    app.use(express.json());
    
    app.post('/api/text',(req, res) => {
        let body = '';
        req.on('data', chunk => {
            body += chunk.toString();
        });
        req.on('end', () => {
            console.log("---", body);
        });
        res.send("text");
    
    })
    
    app.listen(port, () => {
        console.log(`Example app listening on port ${port}`)
    })

    Ответ написан
    Комментировать
  • Почему текстура меняет цвет?

    @grisha228 Автор вопроса
    Решил изменением fragment.glsl
    #pragma glslify: cnoise3 = require(glsl-noise/classic/3d.glsl)
          uniform float time;
          uniform vec3 colorStart;
          uniform vec3 colorEnd;
          uniform sampler2D textureOne;
          varying vec2 vUv;
          varying vec3 vNormal;
          
          void main() {
           vec4 textureOneLoad = vec4(1.0,1.0,1.0,0.1) - texture2D(textureOne,vUv);
            gl_FragColor = textureOneLoad;
          }
    Ответ написан
    Комментировать
  • Как удалить из массива?

    @grisha228 Автор вопроса
    Тем кому нужно решение
    const obj = array.findIndex(entry => (entry.id !== '1')); // фильтруем объекты в массиве выбираем только с id : "1"
    array.splice(array.indexOf(obj),1); // удаляем объект из массива
    Ответ написан
    Комментировать