Отправка JSON через Postman вызывает ошибку в моем сервисе Node.js - PullRequest
0 голосов
/ 19 мая 2018

Я создал схему в node.js.Он работал до того, как я включил массивы.

Это мой код схемы:

const Item = new item_Schema({
    info:{
        title:{type:String, required:true},
        bad_point:{type:Number, 'default':0},
        Tag:{type:String, required:true}
    },
    review:{
        Review_text:{type:Array, required:true},
        Phone_list:{type:Array, required:true},
        LatLng_list:{type:Array, required:true}
    }
});

Item.statics.create = function(info, review){
    const list = new this({
        info:{
            title,
            bad_point,
            Tag
        },
        review:{
            Review_text,
            Phone_list,
            LatLng_list
        }
    });

    return list.save();
};

Это мой register код:

exports.register = (req, res) => {
    const { info, review } = req.body

    const create = (list) => {
        return Item.create(info, review)
    }

    const respond = () => {
        res.json({
            message: 'place route registered successfully'
        })
    }

    const onError = (error) => {
        res.status(409).json({
            message: error.message
        })
    }


    RouteReviewItem.findOneBytitle(title)
    .then(create)
    .then(respond)
    .catch(onError)
}

А это ПочтальонНеобработанный код JSON:

{
    "info":"{
        "title":"test title",
        "badPoint":"0"
        "Tag":"tag1"
        }",
    "review":"{
        "Review_text":["1번리뷰", "2번리뷰", "3번리뷰"],
        "Phone_list":"["010-0000-0000", "010-1111-1111", "010-2222-2222"],
        "LatLng_list":["111.1111,111.1111", "222.222,222.222","333.3333,333.3333"]
        }"
}

Это ошибка, которую я получаю в Почтальоне:

SyntaxError: Unexpected token in JSON at position 17
    at JSON.parse (<anonymous>)
    at parse (C:\MainServer\node_modules\body-parser\lib\types\json.js:89:19)
    at C:\MainServer\node_modules\body-parser\lib\read.js:121:18
    at invokeCallback (C:\MainServer\node_modules\raw-body\index.js:224:16)
    at done (C:\MainServer\node_modules\raw-body\index.js:213:7)
    at IncomingMessage.onEnd (C:\MainServer\node_modules\raw-body\index.js:273:7)
    at emitNone (events.js:105:13)
    at IncomingMessage.emit (events.js:207:7)
    at endReadableNT (_stream_readable.js:1045:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)

Это проблема с почтальоном?Или сторона node.js?Я посмотрел на книгу node.js, которую я изучал, но не смог найти никакой соответствующей информации.

1 Ответ

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

Код в порядке, у вас проблема с JSON, который вы использовали для тестирования.Для дальнейшего тестирования и отладки я предлагаю проверить правильность запросов, которые вы отправляете конечной точке, с помощью службы, такой как JSONLint (или любого автономного инструмента, который делает то же самое).На запрос, который вы отправили в вопросе, эта служба жалуется:

Error: Parse error on line 2:
{   "info": "{  "title": "test t
----------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'

В следующий раз, перед отправкой запроса, убедитесь, что он синтаксически правильный.Таким образом, вы будете знать, что есть проблема с вашим кодом, и не будете тратить время на отладку несуществующей проблемы.

...