Мой сервер 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);
});
}