Показать сообщение отдельно
  #3 (permalink)  
Старый 25.02.2019, 15:59
Новичок на форуме
Отправить личное сообщение для AleRtx Посмотреть профиль Найти все сообщения от AleRtx
 
Регистрация: 25.02.2019
Сообщений: 3

Нет, вызываемая не асинхронна.
Попробую кратко процитировать код.
worker.js (так работает)
server.on('request', function (req, res) {
    tmp.file({keep: true}, function _tempFileCreated(err, path, fd, cleanupCallback) {
        console.log(path);
        console.log(fd);
        console.log(err);

        let oS = fs.createWriteStream(null, {fd: fd});
        //let oS = fs.createWriteStream(path);

        req.pipe(oS);
    });
    return;
});


А если worker.js
const api = require('./api');
server.on('request', function (req, res) {
    let api_return = api(requestedApiPath, req, config);
});

И при этом внутри api.js
module.exports = (requestedApiPath, req, cfg) => {

    const tmp = require('tmp');
    const fs = require('fs');

    tmp.file({keep: true}, function _tempFileCreated(err, path, fd, cleanupCallback) {
        console.log(path);
        console.log(fd);
        console.log(err);

        let oS = fs.createWriteStream(null, {fd: fd});
        //let oS = fs.createWriteStream(path);

        req.pipe(oS);
    });
    return;
});

то так уже не работает.
Повторюсь - темп-файл создаётся, но его размер 0.
Ответить с цитированием