2017-07-06 113 views
2

我用下面的例子来实现AWS Cognito中的NodeJS但我面对错误 “‘AWSCognito’没有定义没有民主基金”“AWSCognito”没有定义

参考链接:https://github.com/aws/amazon-cognito-identity-js/

以下是我在App.js文件中的代码。我使用了react-app。

import React, { Component } from 'react'; 
    import logo from './logo.svg'; 
    import './App.css'; 
    import { CognitoUserPool, CognitoUserAttribute, CognitoUser } from 'amazon-cognito-identity-js'; 

    class App extends Component { 
     constructor(props, context){ 
     super(props, context); 
     this.state = { 
      items: [] 
     } 
     } 
     render() { 
     const {items} = this.state; 
     return (
      <div className="App"> 
      <div className="App-header"> 
       <img src={logo} className="App-logo" alt="logo" /> 
       <h2>Welcome to React</h2> 
      </div> 
      <p className="App-intro"> 
       To get started, edit <code>src/App.js</code> and save to reload. 
      </p> 
      <button onClick={(e) => this.doRegister(e)}>Register</button> 
      { items.map(item => <p>{item.id}</p>) } 
      </div> 
     ); 
     } 
     doRegister(){ 
     console.log("Register User"); 
     var poolData = { 
      UserPoolId : 'xxxxxxxxxxx', // Your user pool id here 
      ClientId : 'xxxxxxxxxxxxxxxxxx' // Your client id here 
     }; 

     var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData); 
     console.debug(userPool); 
     } 
    } 

    export default App; 

这是package.json中的代码。你可以看到aws-cognito-identity库已经被添加了。

{ 
     "name": "my-app", 
     "version": "0.1.0", 
     "private": true, 
     "dependencies": { 
     "amazon-cognito-identity-js": "^1.19.0", 
     "react": "^15.6.1", 
     "react-dom": "^15.6.1", 
     "react-scripts": "1.0.10" 
     }, 
     "scripts": { 
     "start": "react-scripts start", 
     "build": "react-scripts build", 
     "test": "react-scripts test --env=jsdom", 
     "eject": "react-scripts eject" 
     }, 
     "devDependencies": { 
     "json-loader": "^0.5.4", 
     "webpack": "^3.0.0" 
     } 
    } 

为什么它显示AWSCognito是未定义的。我的与AWS Cognito相关的代码中是否有缺失?

回答

5

Amazon Cognito Identity SDK for JavaScript之外,您还需要AWS SDK for JavaScript

npm install aws-sdk --save 

然后,您可以将其导入为:

import * as AmazonCognitoIdentity from 'amazon-cognito-identity-js'; 

class App extends Component { 
    ... 
    const poolData = { UserPoolId: 'YOUR_USER_POOL_ID', ClientId: 'YOUR_CLIENT_ID' }; 
    const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData); 
    ... 
} 
+0

非常感谢。有效!!。你拯救了我的一天。 –