«Ошибка синтаксического анализа JSON: неожиданный идентификатор» в запросе POST [React Native, Node] - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь добавить продукт в базу данных, используя реакционную нативную систему и узел в серверной части. Запрос POST работает, когда я использую почтальон, но терпит неудачу с ошибкой ниже, когда я пытаюсь отправить данные из внешнего интерфейса:

Ошибка синтаксического анализа JSON: неожиданный идентификатор "Locals" node_modules \ обещать \ setimmediate \ core.js: 37: 14 в tryCallOne node_modules \ обещание \ setimmediate \ core.js: 123: 25 в ... еще 8 стековых фреймов из внутренних компонентов фреймворка

Я попытался записать req на консоль иЯ вижу, что тело {}, пустой массив. Так что я думаю, что тело не прибывает на сервер. Как я могу решить эту проблему?

Контроллер:

import Locals from './model';

export const createLocals= async (req,res)=> {
    const { imageUrl, title, category, description, address, area, price  }= req.body;
    const newLocals= new Locals({imageUrl, title, category, description, address, area, price });
    console.log(req);
try {
    res.status(201).json({locals: await newLocals.save()});
}catch(err){
    return res.status(err.status >= 100 && err.status < 600 ? err.code : 500).send(err.message);
}
}
export const getAllLocals= async (req,res)=>{
    try {
        return res.status(200).json({locals: await Locals.find({})});
    }catch(e){
        return res.status(e.status).json({error: true, message: 'Error with Locals'});
    }
}

Экран добавления продукта в Native:

  const productSubmitHandler = () => {   
   dispatch(productsActions.createProduct(img,prodName,category,headline,address,area,+price));     
  }
  return (
    <View style={styles.container}>
      <View style={styles.midCont}>
        <View style={{alignItems: 'center', padding: 5}}>
        {/* <Image source={this.state.avatarSource} style={styles.uploadAvatar} /> */}
        <TextInput 
            style={{borderRadius: 10, borderWidth: 1, height: 100, width: 100, padding: 5}}
            placeholder='Upload Image'
            value={img} onChangeText={text=>setImg(text)}
          />
        </View>
        <View style={styles.viewItem}>
          <Text style={styles.textStyle}>
            Product Name
          </Text>
          <TextInput

            style={styles.input}
            placeholder="Product Name"
            value={prodName} onChangeText={text=>setProdName(text)}
          />
        </View>
          <View style={styles.viewItem}>
          <Text style={styles.textStyle}>
            Category
          </Text>
          <TextInput
            style={styles.input}
            placeholder="Category"
            value={category} onChangeText={text=>setCategory(text)}
          />
        </View>
        <View style={styles.viewItem}>
          <Text style={styles.textStyle}>
            Headline
          </Text>
          <TextInput
            style={styles.input}
            placeholder="Headline"
            value={headline} onChangeText={text=>setHeadline(text)}
          />
        </View>
        <View style={styles.viewItem}>
          <Text style={styles.textStyle}>
            Address
          </Text>
          <TextInput
            style={styles.input}
            placeholder="Address"
            value={address} onChangeText={text=>setAddress(text)}
          />
        </View>
        <View style={styles.viewItem}>
          <Text style={styles.textStyle}>
            Area
          </Text>
          <TextInput
            style={styles.input}
            placeholder="Area"
            value={area} onChangeText={text=>setArea(text)}
          />
        </View>
        <View style={styles.viewItem}>
          <Text style={styles.textStyle}>
            Price
          </Text>
          <TextInput
            style={styles.input}
            placeholder="Price"
            value={price} onChangeText={text=>setPrice(text)}
          />
        </View> 
      </View>
      <View style={styles.viewButton}>
        <Button
        style={styles.button}
        title='Add'
        color={Colors.primary}
        onPress={productSubmitHandler}
        /> 
      </View>
    </View>
  );
}

Модель:

import mongoose, {Schema} from 'mongoose';

const LocalsSchema = new Schema ({
    imageUrl: {
        type: String,
        required: true
    },
    title: {
        type: String,
        required: true
    },
     imageUrl: {
    category: {
        type: String,
        required: true
    },
    description: {
        type: String,
        required: true
    },
    address: {
        type: String,
        required: true
    },
    area: {
        type: String,
        required: true
    },
    price: {
        type: Number,
        required: true
    }
    },

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...