React Native – ne peut pas importer de mongoose au début (mais cela fonctionne à partir du backend)

Je ne peux pas importer de la mongoose sur le frontend mais ça a fonctionné sur le backend.

J’ai un répertoire séparé pour le backend. J’ai du code pour append quelques utilisateurs à ma firebase database. C’est ici…..

import mongoose from 'mongoose'; import User from './models/user'; const users = [ { id: 1, username: 'Matthew', password: 'Smith', }, { id: 2, username: 'Deborah', password: 'Smith', }, ]; // Connect to MongoDB mongoose.connect('mongodb://localhost/users'); // Go through each movie users.map(data => { // Initialize a model with movie data const user = new User(data); // and save it into the database user.save(); }); 

Le code ci-dessus fonctionne.

Maintenant, je veux que mon écran de connexion accepte le nom d’utilisateur et le mot de passe et l’envoie à la firebase database. Je suis coincé parce que je ne peux même pas importer de mongoose (vous verrez ci-dessous que je l’ai commenté).

L’erreur que je reçois est la suivante: ‘TransformError: [chemin du répertoire de mon projet] /node_modules/mongoose/lib/drivers/index.js: require () doit avoir un seul argument littéral: [chemin du répertoire de mon projet] / mongoose / lib / drivers / index.js: 7 ‘

Le code de l’écran de connexion:

 import React from 'react'; import { StyleSheet, Text, View,Navigator,TextInput, KeyboardAvoidingView,TouchableOpacity, AsyncStorage, } from 'react-native'; //import mongoose from 'mongoose'; import { StackNavigator, } from 'react-navigation'; export default class Login extends React.Component { //check to see if user has logged in already componentDidMount(){ this._loadInitialState().done(); } //get info from async storage _loadInitialState = async () => { var value = await AsyncStorage.getItem('user'); if(value != null){ //if the user is already logged in this.props.navigation.navigate('Profile'); //**profile page that we will create later } } constructor(props){ super(props); this.state = { username: '', password: '', } } render() { return ( //    - LOGIN -   this.setState({username})} />  this.setState({password})} />   Log in   //  ); } login = () => { alert('test'); //send to server fetch('http://1.1.1.1/3000/users', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', }, body: JSON.ssortingngify({ username: this.state.username, password: this.state.password, }) }) //handle response .then((response) => response.json()) .then((res) => { //if user and pass exists, then log them in // res: result if(res.sucess === true){ AysncStorage.setItem('user',res.user); this.props.navigation.navigate('Profile'); //navigate user to profile page } //else, tell the user they dont exist in the database else{ alert(res.message); } }) .done(); } } const styles = StyleSheet.create({ wrapper: { flex: 1, }, container: { flex: 1, backgroundColor: '#2896d3', alignItems: 'center', justifyContent: 'center', paddingLeft: 40, paddingRight: 40, }, header: { fontSize: 24, marginBottom: 60, color: '#fff', justifyContent: 'center', paddingLeft: 40, paddingRight: 40, }, textInput: { alignSelf: 'stretch', paddingLeft: 16, marginBottom: 20, backgroundColor: '#fff', }, btn: { alignSelf: 'stretch', padding: 20, marginBottom: 20, backgroundColor: '#01c853', alignItems: 'center', }, }); 

Pourquoi ne puis-je pas l’importer?

Aujourd’hui, j’ai découvert le module de navigation de Mongoose tout en essayant de résoudre des problèmes similaires à vous. C’est une version très limitée de Mongoose, mais vous permettra de valider des schémas, par exemple, sur le front-end. Désolé, j’ai seulement trouvé cela 6 mois après votre post.

La bibliothèque du navigateur de Mongoose ne prend pas en charge mongoose.connect() . Il ne prend en charge que les schémas et la validation de documents; il ne peut pas actuellement se connecter à MongoDB ou enregistrer des documents.