Я использую Facebook API для входа в свое приложение реакции. Фронтенд - это responseJS, а бэкэнд - это узел JS.
При первом входе в систему я посылаю имя, адрес электронной почты и ссылку на фотографию профиля на nodeJS. Проблема заключается в том, что nodeJS не анализирует URL-адрес надлежащим образом, даже если он был правильно отправлен из responseJS (с использованием POST).
Это выглядит так:
{'{"name":"testname","email":"test@mail.com","profilePhoto":"https://platform-lookaside.fbsbx.com/platform/profilepic/?asid': '1111111111111111', height: '50', width: '50', ext: '1111111111', hash: 'AeRNlZmAF4w5mT5r"}' }
Должно выглядеть так:
{"name":"testname","email":"test@mail.com","profilePhoto":"https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=1111111111111111&height=50&width=50&ext=1111111111&hash=ArS0tErHD8Tg9l3s"}"
Другими словами, он не должен разбивать URL на части, потому что я хочу, чтобы исходный URL был в базе данных.
Вот сервер.js
const express = require("express");
const config = require("../config");
const knex = require("../knex/knex");
const api = require("./api");
const cors = require("cors");
const bodyParser = require("body-parser");
const app = express();
app.use(cors());
app.use((req, res, next) => {
res.header("Access-Control-Allow-Origin", "*");
res.header(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept"
);
next();
});
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use("/api", api.router);
app.listen(config.port, config.host, () => {
console.log(Server is running on http://${config.host}:${config.port});
});
и это apiRequest.js в ReactionJS:
const apiRequest = (apiPath, options) => {
const mainOptions = {
headers: {
Accept: "application/json"
},
mode: "cors",
credentials: "include"
};
const finalOptions = merge(mainOptions, options);
if (finalOptions.body) {
finalOptions.body = JSON.stringify(finalOptions.body);
finalOptions.headers["Content-Type"] = "application/x-www-form-urlencoded";
}
const requestUrl = `http://${backendConfig.host}:${
backendConfig.port
}/api/${apiPath}`;
console.log(requestUrl, finalOptions);
return fetch(requestUrl, finalOptions).then(response =>
solveErrors(response)
);
};
Этот подход хорош или есть лучший способ сохранить URL в базе данных?