0

我创建了一个简单的反应应用程序。我发现的问题是当我点击 url 时,在响应中,它显示为缓冲区,这不应该是这种情况。

我的代码

index.js

import axios from 'axios';

export const ADD_CART = "ADD_CART";
export const REMOVE_CART = "REMOVE_CART";
export const LOGIN = "LOGIN";


export const BASE_API_URL = "http://localhost:3030";

export function addToCart(item) {

    console.log(window.localStorage.getItem('WCToken'))
    console.log(window.localStorage.getItem('WCTrustedToken'))
    var headers = {
        'Content-Type': 'application/json',
        'WCToken': window.localStorage.getItem('WCToken'),
        'WCTrustedToken': window.localStorage.getItem('WCTrustedToken')
    }
    axios.post(BASE_API_URL + "/cart", {
        orderItem: [
            {
                productId: item.uniqueID, //working for 12262
                quantity: '1'
            }
        ]
    }, {headers: headers}).then(res => console.log(res))
        .catch(err => console.log(err));
    return {
        type: ADD_CART,
        payload: item
    };
}

export function removeFromCart(cartList, id) {
    return {
        type: REMOVE_CART,
        payload: cartList.filter(i => i.uniqueID != id)
    };
}

export const login = () => {
    return axios.post(BASE_API_URL + "/guestidentity", {}).then(res => {
        window.localStorage.setItem("WCToken", res.data.express.WCToken)
        window.localStorage.setItem("WCTrustedToken", res.data.express.WCTrustedToken)
        return {
            type: LOGIN,
            payload: {}
        }
    }).catch(e => {
        console.log(e);
        return {
            type: LOGIN,
            payload: {}
        }
    });
};

服务器.js

const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const Client = require('node-rest-client').Client;//import it here
const app = express();
const helmet = require('helmet');
const morgan = require('morgan');

// enhance your app security with Helmet
app.use(helmet());

// use bodyParser to parse application/json content-type
app.use(bodyParser.json());

// log HTTP requests
app.use(morgan('combined'));

app.use(cors());

process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0

app.post('/guestidentity',(req, res) => {
    console.log("Hello from Server") 
    var client = new Client();

    // direct way
    client.post("https://149.129.128.3:5443/wcs/resources/store/1/guestidentity", (data, response) => {
        res.send({ express: data });
    });
});



app.post('/cart',(req, res) => {
    console.log("Hello from Server") 
    var client = new Client();

    // direct way
    client.post("https://149.129.128.3:5443/wcs/resources/store/1/cart", (data, response) => {
        res.send({ express: data });
    });
});

const port = 3030;
app.listen(port, () => console.log(`Server running on port ${port}`));

在此处输入图像描述

我不知道我的代码哪里出错了,为什么缓冲区显示响应。有人可以指导我吗?或者向我提供如何解决此问题的见解。

4

1 回答 1

0

您正在向客户端发送具有以下形式的对象:

{
    express: data
}

当您在控制台上记录它时,您会看到数据是一个对象:

{
    data: [],
    type: "buffer"
}

这意味着您在 express 中的 post 请求正在返回该对象。

于 2018-11-06T09:03:43.673 回答