注册用户时,将添加该用户,但脚本返回一个错误对象:{code:"UnknownError",消息:"未知错误,来自fetch的响应正文是:未定义"}
我遵循了 https://stackoverflow.com/a/52033216/8111346 的建议。 但问题并没有解决。
索引.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script src="dist/ww.js"></script>
<script>
var global = global || window;
var Buffer = Buffer || [];
var process = process || {
env: { DEBUG: undefined },
version: []
};
var w = window.w();
global.window = {w};
global.navigator = () => null;
</script>
<script src="./dist/m.js"></script>
</body>
</html>
呜.js
const WindowMock = require('window-mock');
import fetch from 'node-fetch'
global.fetch = global.fetch || fetch
function w(){
return WindowMock.localStorage;
}
window.w = w;
米.js
import { CognitoUserPool, CognitoUserAttribute } from 'amazon-cognito-identity-js';
var poolData = { UserPoolId : "us-west-2_someData",
ClientId : "someData"
};
var userPool = new CognitoUserPool(poolData);
var userName = "example@mail.com";
var attributeList = [];
var dataEmail = {
Name : 'email',
Value : userName
};
var attributeEmail = new CognitoUserAttribute(dataEmail);
attributeList.push(attributeEmail);
userPool.signUp(userName, 'password', attributeList, null, function(err, result){
if (err) {
console.log(err);
return;
}
cognitoUser = result.user;
console.log('user name is ' + cognitoUser.getUsername());
});
webpack.config.js
const path = require('path');
module.exports = {
entry: ["./module.js"],
mode: 'development',
output: {
path: path.resolve(__dirname + '/dist'),
filename: 'm.js'
},
module: {
rules: [
{
test: /.json$/,
loader: 'json-loader'
}
]
},
watch : true
};
在请求cognito-idp.us-west-2.amazonaws.com
标头时,X-Amz-User-Agent: aws-amplify/0.1.x js
被传递,但我不使用 Amplify。也许这是由于我的环境设置?
我很高兴读到你的想法。
在 cognitoUser 之前添加var解决了我的问题:
var cognitoUser = result.user;
节点上没有提取。您需要使用polyfill进行获取,例如节点获取
import fetch from 'node-fetch'
global.fetch = global.fetch || fetch
但请记住,Ampify 不是为在节点上工作而设计的,因此还可能存在其他问题。