Http Request Post с вашим желаемым ID в couchbase sync gateway - PullRequest
0 голосов
/ 27 апреля 2018

Мой сервер couchbase настроен с синхронизирующим шлюзом, поэтому мне нужно использовать модуль "request", чтобы сделать http-запрос для выполнения POST-запроса.

Если я не указываю свой идентификатор, мой код работает, чтобы отправить JSON на мой сервер Если я хочу отправить свой документ с желаемым идентификатором, я не могу отправить его с предупреждением, показанным ниже

{
    "error": "Method Not Allowed",
    "reason": ""
}

Мой код выглядит следующим образом:

//routes.js 
var express = require('express');
var app = express();
var bodyParser = require("body-parser");
var couchbase =require("couchbase");
var request = require("request");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
var Rule = require("./RuleDao").Rule;

var appRouter = function(app){
    app.post("/rule/:id", function(req,res){

        Rule.save(req.params, options3, function(error, result){

            if(error){
                return res.status(400).send(error);
            }
            res.send(result);
        });
    });
}

Тогда Dao.js выглядит следующим образом:

//Dao.js
Rule.save = function (data, options, callback){
     var options ={
        method: 'POST',
        headers: 
        { 
          'Cache-Control': 'no-cache',
          'Content-Type': 'application/json' 
        },
        json: true 
     }
     var id = data.id; 
     var path= '/eabbre-dev/'+ id; 
     var url = 'http://192.168.222.150:4984/mybucketName/' +id;
     var json = data.json; 

     // update options here !!! 
     options.url=url;
     options.body = json; 

    request(options, function (error, result) {
        if (error) {
            console.log(error);
            return callback(error, null);
        }
        callback(null, result.body);
    });

}

...