У меня есть функция, отправляющая объект в NodeJS.
function addRequest(request_item){
var request = new XMLHttpRequest;
request.open("GET", "http://localhost:3000/add_register_request"+"?request_item="+request_item)
request.send(request_item);
console.log("Sent");
document.location.reload(true);
};
Request_item - это объект.
app.get('/add_register_request', function(req,res){
console.log("ADDDD")
var request = req.query.request_item
console.log(`SQL is ${request}`) //This gives {object Object}
})
JSON.stringify (request) просто возвращает '{объект объекта}'. Разница лишь в том, что это сейчас в кавычках.
Как я могу получить доступ к объекту в моем NodeJS? Заранее спасибо!
2 ответа
Если request_item
является объектом и вы соединяете его со строкой, он превращается в объект строкового объекта, который вы получаете и видите в конечной точке /add_register_request
.
const request_item = { foo: 'bar' };
const request_string = "http://localhost:3000/add_register_request"+"?request_item=" + request_item;
console.log(request_string);
Если вы пытаетесь отправить данные на сервер, чтобы сохранить их в какой-либо базе данных или чем-то в этом роде, вам следует использовать глагол POST вместо GET и отправлять данные внутри тела запроса, а не в качестве параметра ,
Кроме того, я думаю, вы могли забыть скобки при инициализации new XMLHttpRequest
. Я думаю, что это должно быть new XMLHttpRequest()
Переменные запроса принимают строки, а не объекты. Если вы хотите передать весь объект js, вы можете закодировать его в JSON, а затем в дальнейшем кодировать в base64. Другой стратегией может быть преобразование каждого атрибута request_item
в запрос. Или вы можете использовать другой метод HTTP, который содержит тело для отправки объекта.
function addRequest(request_item){
var request = new XMLHttpRequest;
request.open(
"GET",
"http://localhost:3000/add_register_request"
+"?request_item_value_1="+request_item.value_1
+"&request_item_value_2="+request_item.value_2
)
request.send(request_item);
console.log("Sent");
document.location.reload(true);
};
Тогда на вашем сервере
app.get('/add_register_request', function(req,res){
console.log("ADDDD")
var request = {
value_1: req.query.request_item_value_1,
value_2: req.query.request_item_value_2,
}
console.log(`SQL is ${request}`) //This gives {object Object}
})
Где request_item.value_1
и request_item.value_1
являются строками или значениями, которые могут быть объединены в строки
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.