快速响应操作以将字符串发送到客户端

我有以下app.js文件用于处理特定端点:


const express = require('express');


const app = express();


app.use((req, res, next) => {

    !process.env.HTTP_ACCESS_IP || res.setHeader('Access-Control-Allow-Origin', process.env.HTTP_ACCESS_IP);

    res.setHeader(

        'Access-Control-Allow-Headers',

        'Origin, X-Requested-With, Content-Type, Accept, Authorization'

    );

    res.setHeader(

        'Access-Control-Allow-Methods',

        'GET, POST, PATCH, PUT, DELETE, OPTIONS',

    );

    next();

});


app.use(express.json({ limit: '50mb' }));

app.use(express.urlencoded({ limit: '50mb', extended: true }));


app.post('/api/verificationstart', (req, res) => {

    return res.status(400).send({ message: 'TEST' });

})


module.exports = app;

在我的客户端,我将 HTTP REQUEST 发送到上面的端点,然后编码res.json()。


async function fetchApi() {

  return fetch('...', {

    method: 'POST',

    referrerPolicy: 'no-referrer',

  });

}


async function verificationStartApi(data) {

  const res = await fetchApi();

  if (res._bodyText || res._bodyInit) {

    return res.json();

  } else {

    return res;

  }

}

问题是,res.json()我想得到一个string对象,而不是JSON一个。我怎样才能做到呢?因此结果res.json()将是"{ message: 'TEST' }".


请注意,我想要后端的解决方案。我无法触及客户端。


我一直在后端尝试任何东西,res.send()但没有任何效果:


res.send('"{ "message": "string" }"');

res.send('{ message: "test" }');

res.send('{ "message": "test" }');


幕布斯6054654
浏览 129回答 3
3回答

开心每一天1111

所以这是最丑陋的答案:    return res.send('"{ \\"message\\": \\"string\\" }"');

肥皂起泡泡

你可以使用双JSON.stringify。app.post('/api/verificationstart', (req, res) => {    // it will be res.send('"{\\"message\\":\\"TEST\\"}"')    res.send(JSON.stringify(JSON.stringify({ message: 'TEST' }))) })

万千封印

发送 JSON 有效字符串。假设这是你的 api。app.post('/api/verificationstart', (req, res) => {    return res.status(400).send(JSON.stringify("{ message: 'TEST' }"));})res.send(JSON.stringify('{ "message": "test" }'));.编辑:明白你的意思。将字符串化 JSON 包含在字符串中。看看我的更新,测试一下。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript