我最近使用 create-react-app 启动了一个新项目。我将文件夹App.test.js从外部移动/src到根级/tests文件夹中,因此我的文件夹结构现在如下所示:
> node_modules
> public
> src
...
App.js
> tests
App.test.js
...
Run Code Online (Sandbox Code Playgroud)
这是整个 App.test.js 文件:
import React from 'react';
import ReactDOM from 'react-dom';
import App from "../src/App";
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<App />, div);
ReactDOM.unmountComponentAtNode(div);
});
Run Code Online (Sandbox Code Playgroud)
因此,当我尝试时npm run test,不会执行任何测试。它说找不到测试。如何让 create-react-app 将新/tests文件夹识别为所有测试的新位置并运行它们?
我有一个简单的Lambda函数,该函数应该获取事件数据并将消息发送到SNS主题。
运行时为Node.js 8.10。
这是我完整的Lambda代码:
const AWS = require("aws-sdk");
exports.handler = async (event) => {
const sns = new AWS.SNS();
const emailBody =
`
New Message
From: ${event.name}
Contact: ${event.contact}
Message: ${event.message}
`;
const snsMessageParams = {
TopicArn: process.env.snsTopicArn,
Message: emailBody
};
sns.publish(snsMessageParams, (err, data) => {
if(err) {
return err;
} else {
return data;
}
});
};
Run Code Online (Sandbox Code Playgroud)
每次我运行该函数时,响应总是总是为null。没有错误返回,但我从未从SNS的电子邮件中收到消息,因此这里有问题。我只是不知道是什么。
我能够从SNS控制台以及本地计算机上的Node SDK成功地将消息发布到我的SNS主题。这些完美地工作。通过直接从成功的本地代码和SNS控制台复制并粘贴,我已检查env变量中的snsTopicArn是否正确。
我在Lambda函数上具有执行角色,该角色应允许我在帐户中的任何主题上发布到SNS。在配置Lambda角色以测试所有内容时,我选择了默认的“ SNSPublish”选项。但是,作为参考,以下是我的执行角色的政策:
{
"roleName": <MyRoleName>,
"policies": [
{
"document": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [ …Run Code Online (Sandbox Code Playgroud) amazon-web-services node.js amazon-sns aws-lambda serverless
我有一个基本的网格设置如下:
.grid-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(33rem, 1fr));
grid-gap: 1rem;
}
Run Code Online (Sandbox Code Playgroud)
当网格自动分成新行时,我要么希望新行上的元素占据一定比例的空间,要么居中以便它们看起来不错。
例如,如果我在一行中有 3 个元素,那么我希望每个元素占用 33% 的容器空间。但是,当网格中断并且新行上只有 1 个元素时,我希望该元素占据行宽的 100%,或者至少看起来居中——这与将元素全部放置在中间的默认行为相反。向左移动,仅占用 1fr 的空间。
同样,如果新行中有 2 个元素,则每个元素应占据行空间的 50%,或者两个元素一起看起来应居中。
我不知道总共会有多少个元素。理想情况下,该解决方案应适用于最少 1 个到任意数量的元素。
如果有人有任何想法,请告诉我。谢谢。
我正在使用 AWS Cognito 对我正在构建的新应用程序中的用户进行身份验证。
我amazon-cognito-identity-js在我的项目中使用该库(链接到 Github:https : //github.com/aws-amplify/amplify-js/tree/master/packages/amazon-cognito-identity-js)。由于此特定用户池中的用户无法自行注册 - 我手动注册 - 我知道我需要 Github 的 README.md 中所述的“用例 23”。
所以我的代码如下:
...
const userPoolData = {
UserPoolId: <MY_USER_POOL_ID>,
ClientId: <MY_CLIENT_ID>
};
const userPool = new CognitoUserPool(userPoolData);
const authenticationData = {
Username: email,
Password: tempPassword
};
const userData = {
Username: email,
Pool: userPool
}
const authenticationDetails = new AuthenticationDetails(authenticationData);
const cognitoUser = new CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: (result) => {
console.log(result);
},
onFailure: (err) => {
console.log("Error from cognito …Run Code Online (Sandbox Code Playgroud) javascript authentication error-handling amazon-web-services amazon-cognito
我已开始使用 AWS AppSync,但遇到了权限问题。
我使用 AppSync 为我的数据创建了一个 DynamoDB 表,并设置了与我已经创建的 Cognito 用户池一起使用的授权。
我设置了默认操作ALLOW,根据 AWS 文档 - https://docs.aws.amazon.com/appsync/latest/devguide/security.html#amazon-cognito-user-pools-authorization - 应该允许公共访问默认情况下运行在我的架构中定义的任何查询/变异/订阅。
上面的文档还说限制访问是通过@aws_auth在我的类型定义中添加一个来完成的。我还没有添加。
这就是我想要的:我希望我的查询是公开的 - 不需要添加@aws_auth指令 - 并且我的更改仅限于我的 Cognito 用户池中的 Admins 组。因此,在测试查询时,我应该能够将数据返回给我,而无需在任何地方登录。
但是,当尝试在 AppSync 控制台内运行任何测试查询时,我收到以下错误消息:
{
"errors": [
{
"errorType": "UnauthorizedException",
"message": "Unable to parse JWT token."
}
]
}
Run Code Online (Sandbox Code Playgroud)
显然,这与未使用 Cognito 登录有关。
我之前在没有使用 Cognito 授权的情况下测试过这些查询,它们都运行良好。由于我的默认操作设置ALLOW为我的 Cognito 授权方,我的查询现在应该运行相同,因为我没有修改它们。
查看我的查询、类型和解析器的代码,我无法发现它们的编写方式有什么不同。允许访问我的 DynamoDB 表的 IAM 角色也保持不变,没有附加任何限制。
到底是怎么回事?AppSync 是否存在错误,或者我在这里遗漏了什么?
请告诉我。谢谢
authorization amazon-web-services amazon-cognito graphql aws-appsync
我正在尝试允许用户在 react-native 应用程序中上传视频,但我什至无法访问相机。
** 不使用世博会。我使用了 react-native cli 并使用了 react-native-init 来生成我的项目 **
** 使用本机版本 0.53.0。安卓版本 5.1 **
** 更新:经过一些好的建议,我已将 android/app/build.gradle 文件中的 compileSdkVersions 和 targetSdkVersions 更改为 > 23,并且知道问题不在于我的权限。此外,已弃用的 RCTCamera 版本的 react-native-camera 工作正常,我能够捕获静止图像和视频并将它们保存到设备中。只有使用 RNCamera 的主版本在每次屏幕加载时仍然使应用程序崩溃:/
这不太理想,因为我不想在我的应用程序中有弃用的代码。所以当我在下面提到 react-native-camera 时,我指的是使用 RNCamera 而不是 RCTCamera 的当前版本。**
我尝试使用 react-native-camera 包(https://github.com/react-native-community/react-native-camera),但这会导致我的应用程序每次都崩溃。另外,我想使用用户已经安装的相机应用程序,而不必构建我自己的相机视图,这正是 react-native-camera 所需要的。
环顾四周,我偶然发现了三种有前途的方法来解决这个问题:
1) 链接 - 据我从这篇 StackOverflow 帖子中了解到(React native 向特定的 whatsapp Number 2发送消息)链接可用于打开用户在其设备上拥有的其他应用程序。我认为这也可用于访问相机应用程序。但我没有找到任何关于这方面的信息。如何检查用户是否有相机应用程序,然后链接到他们?理想情况下,用户手机上会出现一个弹出菜单,要求用户从可用的相机应用程序列表中进行选择以供使用。
2) 来自 android 开发人员文档的这篇文章 - https://developer.android.com/training/camera/videobasics.html。这描述了如何准确地做我想做的事情,但是我在制作用于我的组件的本机模块时遇到了麻烦。我对在 react-native 中构建桥梁有非常基本的了解,并且只有在阅读了几篇列出所有代码的文章后才能使一个简单的本地 Toast 模块工作。那么任何人都可以编写一个 VideoModule.java 文件来实现与 android 文档指定的相同功能吗?这对我来说似乎是最简单的解决方案,但我对 Java/android 缺乏了解阻碍了我。
3) ReactNativeWebRTC …
android android-camera webrtc react-native react-native-native-module
amazon-sns ×1
android ×1
aws-appsync ×1
aws-lambda ×1
centering ×1
css ×1
css-grid ×1
flexbox ×1
graphql ×1
html ×1
javascript ×1
jestjs ×1
node.js ×1
react-native ×1
reactjs ×1
regex ×1
serverless ×1
testing ×1
webrtc ×1