Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js React Native Node Js:未使用React Native Image picker在Node Js服务器上上载映像_Node.js_Mongodb_React Native_Nodemon_React Native Image Picker - Fatal编程技术网

Node.js React Native Node Js:未使用React Native Image picker在Node Js服务器上上载映像

Node.js React Native Node Js:未使用React Native Image picker在Node Js服务器上上载映像,node.js,mongodb,react-native,nodemon,react-native-image-picker,Node.js,Mongodb,React Native,Nodemon,React Native Image Picker,您好,我是react新手,我正在尝试从react本机图像选择器上载图像,但它没有上载到node js服务器,图像数据也不会上载到后端node js服务器 这是我的本地代码 import React,{useState,useEffect} from 'react' import {View,Text,StyleSheet,SafeAreaView,TouchableOpacity,Image,Button,AsyncStorage} from 'react-native' import Font

您好,我是react新手,我正在尝试从react本机图像选择器上载图像,但它没有上载到node js服务器,图像数据也不会上载到后端node js服务器

这是我的本地代码

import React,{useState,useEffect} from 'react'
import {View,Text,StyleSheet,SafeAreaView,TouchableOpacity,Image,Button,AsyncStorage} from 'react-native'
import FontAwesome5 from 'react-native-vector-icons/FontAwesome5';
import ImagePicker from 'react-native-image-picker';

    const ActvityScreen = (props) =>
    {    
      const [u_id,setU_id] = useState('');
      const [image,setImage] = useState('https://bootdey.com/img/Content/avatar/avatar6.png');
      const [filePath,setfilePath] = useState({});

       useEffect(() => {
            async function fetchData() {
            const token = await AsyncStorage.getItem('token');
            fetch('http://127.0.0.1:3000',{
                headers:new Headers({
                    Authorization:'Bearer '+token
                })
            }).then(res=>res.json())
            .then(async(data)=>{
              // setIsloaded(false);
                console.log(data)

                setU_id(data.u_id)
                setImage('http://127.0.0.1:3000/image/'+data.photoId)
                console.log(image)
            })
            }
            fetchData();
          }, []); 



      const handleUploadPhoto = async (filePath) => {
      fetch("http://127.0.0.1:3000/updateImageprofile2", {
        method: "POST",
        body: createFormData(filePath, { userId: u_id }),
         headers: {
            Accept: 'application/json',
            'Content-Type': 'multipart/form-data',
          },
      })
        .then(response => response.json())
        .then(response => {
          console.log("upload succes", response);
          alert("Upload success!");
        })
        .catch(error => {
          console.log("upload error", error);
          alert("Upload failed!");
        });
    };


    const createFormData = (photo, body) => {
      const data = new FormData();
       console.log("photoooooooooooo",photo.fileName);

      data.append("photo", {
        name: photo.fileName,
        type: photo.type,
        uri:
          Platform.OS === "android" ? photo.uri : photo.uri.replace("file://", "")
      });

      Object.keys(body).forEach(key => {
        data.append(key, body[key]);
      });
      return data;
    };

      const chooseFile = () => {
        var options = {
          title: 'Select Image',
          customButtons: [
            { name: 'customOptionKey', title: 'Choose Photo from Custom Option' },
          ],
          storageOptions: {
            skipBackup: true,
            path: 'images',
          },
        };
        ImagePicker.showImagePicker(options, response => {
          console.log('Response = ', response);

          if (response.didCancel) {
            console.log('User cancelled image picker');
          } else if (response.error) {
            console.log('ImagePicker Error: ', response.error);
          } else if (response.customButton) {
            console.log('User tapped custom button: ', response.customButton);
            alert(response.customButton);
          } else {
            let source = response;
            setfilePath(source);
            handleUploadPhoto(source);
          }
        });
      };

        return (
            <View style={styles.container1}>

              <Image
                source={{
                  uri: 'data:image/jpeg;base64,' + filePath.data,
                }}
                style={{ width: 100, height: 100 }}
              />
              <Image
                source={{ uri: filePath.uri }}
                style={{ width: 250, height: 250 }}
              />
              <Text style={{ alignItems: 'center' }}>
                {filePath.uri}
              </Text>
              <Button title="Choose File" onPress={()=>chooseFile(this)} />
            </View>
            )
    }

    const styles = StyleSheet.create({
        container1:{
            flex:1,
            backgroundColor: '#fff',
        marginTop:16
        },
        text:{
            color:"#161924",
            fontSize:20,
            fontWeight: '500' 
        }
    })

    export default ActvityScreen;
const express = require('express');
const mongoose = require('mongoose');
const jwt  = require('jsonwebtoken');
const {jwtkey} = require('../keys');
const multer = require('multer');
const router = express.Router();
const GridFsStorage = require('multer-gridfs-storage');
const url = 'mongodb://localhost:27017/pixa';
const storage = new GridFsStorage({ url });
const uploadController = require("../controllers/upload");
const User = mongoose.model('User');

const upload = multer({ 
  dest: "upload/",
});

  router.post("/updateImageprofile2", upload.array('photo',3),async (req, res,next) => {
    console.log("I am in");
    console.log('files', req.files)
     console.log('file', req.file)
    console.log('body', req.body)
    res.status(200).json({
      message: 'success!',
    })
  });

module.exports = router