我有一个 Vue.js 应用程序,其中两个文件包含:
import axios from "axios"
这些文件位于应用程序内的 src/lib 中,并在第一行包含 import 语句。
无论 package.json 说什么,在 Github 上运行测试都会导致安装 Axios 1.0.0,现在涉及这些文件的任何测试都会失败并出现上述错误。
将语句更改为const axios = require("axios")也失败;node_modules/axios/index.js 在第 1 行包含一个 import 语句,并在那里抛出异常。
对于此类问题,我经常看到的一个建议是添加"type": "module"到 package.json (与 src/ 处于同一级别)。这会导致所有测试失败,并要求将 vue.config.js 重命名为 vue.config.cjs。这样做会让我: Error: You appear to be using a native ECMAScript module configuration file, which is only supported when running Babel asynchronously,我不明白。
谁能建议在这里做什么?
从 Elasticsearch 切换到 Opensearch 后,我的应用程序现在无法使用以下命令运行简单查询:
“文本字段没有针对需要每个文档字段数据的操作(例如聚合和排序)进行优化,因此默认情况下禁用这些操作。请改用关键字字段。或者,在 [status] 上设置 fielddata=true 以便加载字段通过反转倒排索引来恢复数据。请注意,这可能会使用大量内存。”
在Searchkick / Elasticsearch Error: Please use a keywords field 相反,有一个关于相同错误的问题。或者,在 [name] 上设置 fielddata=true,但问题仅影响测试,并且我仅在开发模式下遇到问题(到目前为止)。
这是正在运行的查询:
::Record.search(q ? q : "*",
where: where_clause,
fields: fields,
match: :word_middle,
per_page: max_per_page(per_page) || 30,
page: page || 1,
order: sort_clause,
aggs: aggs,
misspellings: {below: 5}
Run Code Online (Sandbox Code Playgroud)
如果我取出 aggs,那么搜索就可以了,但它们对于应用程序来说是必不可少的。:status从聚合字段列表中删除会导致错误将数组中的下一个字段命名为问题。因此,我可能需要为聚合中使用的每个字段指定正确的类型。但如何呢?
Searchkick 文档在“高级映射”( https://github.com/ankane/searchkick ) 下建议使用此示例:
class Product < ApplicationRecord
searchkick mappings: {
properties: {
name: {type: "keyword"}
}
}
end
Run Code Online (Sandbox Code Playgroud)
所以,我尝试了这个:
# in …Run Code Online (Sandbox Code Playgroud) 我在制定递归查询的 PostgreSQL 文档时遇到了一些麻烦,想知道是否有人能够为以下内容提供建议。
这是数据:
Table "public.subjects"
Column | Type | Collation | Nullable | Default
-------------------+-----------------------------+-----------+----------+--------------------------------------
id | bigint | | not null | nextval('subjects_id_seq'::regclass)
name | character varying | | |
Table "public.subject_associations"
Column | Type | Collation | Nullable | Default
------------+-----------------------------+-----------+----------+--------------------------------------------------
id | bigint | | not null | nextval('subject_associations_id_seq'::regclass)
parent_id | integer | | |
child_id | integer | | |
Run Code Online (Sandbox Code Playgroud)
在这里,一个“主体”可能有许多父母和许多孩子。当然,在顶层一个科目没有父母,在底层没有孩子。例如:
parent_id | child_id
------------+------------
2 | 3
1 | 4
1 | 3
4 …Run Code Online (Sandbox Code Playgroud) 我需要测试邮件是从 Django 1.8 应用程序发送的;文档清楚地说明了如何执行此操作,例如
https://docs.djangoproject.com/en/dev/topics/testing/tools/#email-services
因此,这里有一些代码就足够了:
from myapp.utils.mailutils import mail as mymail
from django.core import mail
def testThisFails(self):
user = User.objects.filter(id=1).__getitem__(0)
mymail(user,'Test Message','Test message content, please ignore...')
self.assertEquals(len(mail.outbox), 1)
self.assertEquals(mail.outbox[0].subject, 'Test Message')
Run Code Online (Sandbox Code Playgroud)
...显然,我也有适当的测试。无论如何,我什么也没有得到:
self.assertEquals(len(mail.outbox), 1)
AssertionError: 0 != 1
Run Code Online (Sandbox Code Playgroud)
这是一个类似的问题,提到需要使用 locmail 后端:
因此,我将其添加到 settings.py 中:
TESTING = len(sys.argv) > 1 and sys.argv[1] == 'test'
if TESTING:
EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend'
Run Code Online (Sandbox Code Playgroud)
...没有运气。即使省略if TESTING也不能解决问题。有什么方法可以让我的测试直接使用这个后端?
在向我的Android项目添加库之前,布局是这样的:
顶层build.gradle始终为空,而settings.gradle文件仅包含:
include ':Myapp'
Run Code Online (Sandbox Code Playgroud)
我获得了一个库项目,可以将其成功导入到Android Studio中,因此我认为其中的gradle文件很好。我现在有以下结构:
...并且顶级设置gradle现在看起来像:
include ':Myapp'
include ':libraries:Library'
Run Code Online (Sandbox Code Playgroud)
我还更新了Myapp的build.gradle,因此它在依赖项中包括了额外的最后一行:
dependencies {
compile 'com.android.support:support-v4:+'
compile files('libs/commons-lang3-3.1.jar')
compile files('libs/jsoup-1.7.3.jar')
compile project(':libraries:Library')
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,任何尝试使用gradle进行任何操作(同步文件,构建等)现在都可以使我获得以下信息:
Gradle 'MyappProject' project refresh failed:
Configuration with name 'default' not found.
Gradle settings
Run Code Online (Sandbox Code Playgroud)
设置的任何更改似乎均无效,并且Android Studio会将设置保留为“使用默认Gradle包装器”。据我了解,这意味着顶层build.gradle出现了问题,因为该文件的内容不足以构建子项目。但是,也许我误解了,因为Myapp曾经用来构建,而Library似乎也不错。删除编译项目(':libraries:Library')可以使gradle文件再次同步,但是我想使用该库...
任何有关如何解决此问题的建议都将受到欢迎。
编辑以从Library添加build.gradle。顶层:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
allprojects {
version = VERSION_NAME
group = GROUP
repositories {
mavenCentral() …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Sinatra应用程序,我想使用OmniAuth.到目前为止,我对Web应用程序有类似的东西:
http://codebiff.com/omniauth-with-sinatra
我希望网络应用程序可以通过Android手机使用,它将使用API,通过令牌进行身份验证.这里似乎很好地介绍了API的开发:
目前尚不清楚的是我可能会安排登录程序.据推测,它将沿着这些方向:
关于如何管理第3点,我不是很清楚 - 有没有人有任何建议?
下面的代码的目标是产生一个散列与键作为:id在散列的字段original_array,值是在所有元素original_array它们具有:id.
original_array = [
{:id => '123', :name => 'test'},
{:id => '123', :name => 'another test'},
{:id => '456', :name => 'yet another test'}
]
new_hash = {}
original_array.each do |a|
new_hash[a[:id]] = original_array.select {|x| x[:id] == a[:id]}
end
Run Code Online (Sandbox Code Playgroud)
我的代码就是这样做的,但必须有一些更好的方法来实现它,理想情况下可以在一步中创建哈希.如果有人可以建议并解释一个(希望我可以提高我对这类事情的理解),那么我们将不胜感激.
android ×2
axios ×1
django ×1
gradle ×1
hash ×1
inject ×1
node.js ×1
omniauth ×1
opensearch ×1
postgresql ×1
ruby ×1
searchkick ×1
sinatra ×1
vue.js ×1