Ответы пользователя по тегу Node.js
  • Как оправить запрос cURL в Node js?

    @Abigovor
    full-stack developer (javascript/java)
    В твоем случае это будет выглядеть приблизительно так

    К сожалению c curl-request не знаком, не уверен можно ли обычный объект отправлять
    const curl = new (require( 'curl-request' ))();
    
    curl
    .setHeaders([
        'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=', // dXNlcm5hbWU6cGFzc3dvcmQ= - это username:password в base64 кодировке 
        'Content-Type: application/json'
    ])
    .setBody(dataObject)  // объект с передаваемыми данными
    .post('https://localhost:8090/rest/api/2/issue')
    .then(({statusCode, body, headers}) => {
        console.log(statusCode, body, headers)
    })
    .catch((e) => {
        console.log(e);
    });


    пример с использованием request-promise 100% сработает
    const rp = require('request-promise');
    
    var options = { 
    	method: "POST", 
    	uri: "https://localhost:8090/rest/api/2/issue", 
    	body: dataObject, // объект с данными для сервера
    	headers:{"Authorization":"Basic dXNlcm5hbWU6cGFzc3dvcmQ="}, // dXNlcm5hbWU6cGFzc3dvcmQ= - это username:password в base64 кодировке
    	json: true
    }
    
    rp(options)
    	.then(data => {
    		console.log( JSON.parse(data) );
    	})
    	.catch(err => console.log('error ', err))
    Ответ написан
  • Трансформация query для mongodb в express?

    @Abigovor
    full-stack developer (javascript/java)
    присмотритесь к https://www.npmjs.com/package/node-odata

    конечно реализовано в ней не все, todo список большой, но все, что Вам нужно там есть.
    Ответ написан
    Комментировать
  • Как изменить данные массива, вложенного в объект?

    @Abigovor
    full-stack developer (javascript/java)
    Вам из модели необходимо получить обычный js объект.

    Это можно сделать следующими путями:
    1. Вызвать метод toObject() , после чего изменять объект
    ссылка на доки: mongoosejs.com/docs/api.html#document_Document-toObject
    2. вызвать метод .lean() что позволит mongoose вернуть обычный js объект
    пример MyModel.findOne().lean().exec(function(err, doc) {
    ...
    });
    Ответ написан
    Комментировать
  • Обязательно указывать в ответах клиенту контент тайп?

    @Abigovor
    full-stack developer (javascript/java)
    Заголовок Content-Type не обязателен, но Content-Type лучше указывать если он известен.

    Этот заголовок нужен чтобы в браузере понимать, какой тип контента возвращает сервер.

    Вот что по этому поводу пишут в документации ( https://nodejs.org/api/http.html#http_response_wri... ), если этот заголовок не указан "it will switch to implicit header mode and flush the implicit headers", т.е. нода укажет его неявно.
    Ответ написан
    3 комментария
  • Как отфильтровать пользователей по стране?

    @Abigovor
    full-stack developer (javascript/java)
    Нужно написать middleware, для фильтрации по стране

    пример с использованием библиотеки iplocate для получения страны запроса

    const express = require('express');
    const app = express();
    const iplocate = require('iplocate');
     
    app.use(iplocate);
    
    // middleware for filtering by country
    app.use(function (req, res, next) {
      
      	// some error 
    	if ( req.locationError ) {
    		// handle error
    	}
    
    	if ( req.location.country_code !== 'RU' ){
    		return res.send("request available only from russia")
    	}
    
        next();
    });
    
    app
        .get('/', (req, res) => {
            res.send('success');
        })
    
    app.listen(3000, function () {
      console.log('app listening on port 3000!');
    });
    Ответ написан
    Комментировать
  • Почему не правильно читает подключаемый файл в Node.js?

    @Abigovor
    full-stack developer (javascript/java)
    Попробуй вот так

    var http = require('http');
    var fs = require('fs');
    
    http.createServer(function(req,res){
    
    	  var readStream = fs.createReadStream('1.js', 'utf8');
    
    	  readStream.on('open', function () {
    	    // This just pipes the read stream to the response object (which goes to the client)
    	    readStream.pipe(res);
    	  });
    
    	  
    	  readStream.on('error', function(err) {
    	    res.end(`couldn\'t read file`);
    	  });
    
    })
    .listen(3000, function() {console.log('bould to port 7777')} );
    Ответ написан