SyntaxError: неожиданный токен u в JSON в позиции 0 - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь экспортировать данные, полученные в результате сбора данных на почтальоне. Я неукоснительно следую инструкциям на этом посту:

http://blog.getpostman.com/2017/09/01/write-to-your-local-file-system-using-a-postman-collection/

Однако должна быть некоторая проблема со сценарием, который там представлен, так как каждый раз, когда я запускаю его на node.js, я получаю следующую ошибку, которая также появляется при отправке запроса post через почтальона:

<code><!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Error</title>
    </head>
    <body>
        <pre>SyntaxError: Unexpected token u in JSON at position 0
            <br> &nbsp; &nbsp;at JSON.parse (&lt;anonymous&gt;)
            <br> &nbsp; &nbsp;at C:\Users\Pablo\Node\hlr.js:13:58
            <br> &nbsp; &nbsp;at Layer.handle [as handle_request] (C:\Users\Pablo\Node\node_modules\express\lib\router\layer.js:95:5)
            <br> &nbsp; &nbsp;at next (C:\Users\Pablo\Node\node_modules\express\lib\router\route.js:137:13)
            <br> &nbsp; &nbsp;at Route.dispatch (C:\Users\Pablo\Node\node_modules\express\lib\router\route.js:112:3)
            <br> &nbsp; &nbsp;at Layer.handle [as handle_request] (C:\Users\Pablo\Node\node_modules\express\lib\router\layer.js:95:5)
            <br> &nbsp; &nbsp;at C:\Users\Pablo\Node\node_modules\express\lib\router\index.js:281:22
            <br> &nbsp; &nbsp;at Function.process_params (C:\Users\Pablo\Node\node_modules\express\lib\router\index.js:335:12)
            <br> &nbsp; &nbsp;at next (C:\Users\Pablo\Node\node_modules\express\lib\router\index.js:275:10)
            <br> &nbsp; &nbsp;at C:\Users\Pablo\Node\node_modules\body-parser\lib\read.js:130:5
        

Сценарий, выдающий эту ошибку, выглядит следующим образом:

var express = require('express');
var fs = require('fs');
var bodyParser = require('body-parser');

var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json()); // Body parser use JSON data

app.post('/launches', function(req, res) {

    var outputFilename = './spaceReport.json'; // path of the file to output

    fs.writeFileSync(outputFilename, JSON.stringify(JSON.parse(req.body.payload), null, 4)); // write to the file system

    res.send('Saved to ' + outputFilename);

});

var port = 3000;
app.listen(port);
console.log('Express started on port %d ...', port);

Есть идеи, откуда возникла ошибка?

1 Ответ

0 голосов
/ 16 мая 2018

Вероятно, req.body.payload - это объект, который не является допустимой строкой JSON, вы можете использовать JSON.stringify без JSON.parse, как

fs.writeFileSync(outputFilename, JSON.stringify(req.body.payload), null, 4); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...