我正在使用这个NPM 插件来处理在我的 Node 应用程序中创建本地 DynamoDB 本地服务器。出于某种原因,有时它会给我以下错误。不知道为什么,但在测试的特定部分运行测试时似乎总是会发生。
绝对不是每次都发生。也许 50% 左右。很奇怪。
我读到错误意味着启动 DynamoDB 本地服务器失败。但我不知道为什么,因为它没有提供更多细节。
DynamoDB Local failed to start with code 1
{ Error: connect ECONNREFUSED 127.0.0.1:8000
at Object.exports._errnoException (util.js:1012:11)
at exports._exceptionWithHostPort (util.js:1035:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)
message: 'connect ECONNREFUSED 127.0.0.1:8000',
code: 'NetworkingError',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 8000,
region: 'us-west-2',
hostname: 'localhost',
retryable: true,
time: 2016-09-13T03:26:05.804Z }
Run Code Online (Sandbox Code Playgroud)
哦,这是我创建服务器的代码。
dynamodbLocal.start({port : dbport, /* Port to listen on. Default: 8000 */
cors : '*', /* Enable CORS support …Run Code Online (Sandbox Code Playgroud) 所以我有我的主视图控制器.该视图控制器有一个带有故事板segue的条形按钮项目,其类型设置为Present As Popover.
这一切都按预期工作.但是当您点击该弹出窗口控制器中的另一个按钮时,它会全屏显示视图.我希望它在popover中显示.就像在现有的popover界限之上推/显示一样.
我怎样才能做到这一点?
我只想在iPad上这种行为.但我认为默认情况下这样做.
编辑
我更喜欢在故事板中完成所有操作,但我愿意使用Swift代码,如果这是必需的.
我有一个用于视频流的iOS发送器应用程序,该应用程序支持排队并使用skipPrevious和skipNext按钮在队列中的视频之间向前和向后跳过。该应用程序可与google cast sdk v4.3.3和v4.3.4一起使用,但我需要更新sdk以支持iOS 13的更改。当我将sdk更新到v4.4.4时,即使我既可以在接收器上看到也可以通过在发送器应用程序中看到队列中有项目,但ExpandedMediaControlsViewController上的skipPrevious和skipNext按钮类型始终显示为灰色。在sdk v4.3.5和更高版本的所有版本中,按钮均显示为灰色。
我查看了Google Chromecast开发人员文档,并且不建议使用skipPrevious和skipNext按钮类型,并说如果队列中有内容,它们应该自动更新。我尝试修改Google的iOS发送器应用程序教程代码,以将30秒的ffw和rwd按钮更改为“跳过”按钮,并且在将项目添加到队列并播放后具有相同的结果。
关于3月在此处创建的类似问题,还有另一个未解决的问题:skipNext skipPrevious Google Cast变灰了
我在我的castViewController类内部使用了一个更新函数,将expandedMediaControls更改为skipPrevious和skipNext类型。当我的castViewController初始化时,我调用此方法
private func updatePlayerMediaControls() {
GCKCastContext.sharedInstance().defaultExpandedMediaControlsViewController.setButtonType(.skipPrevious, at: 1)
GCKCastContext.sharedInstance().defaultExpandedMediaControlsViewController.setButtonType(.skipNext, at: 2)
}
Run Code Online (Sandbox Code Playgroud)
我使用遵循此逻辑的函数来投射视频或将视频添加到队列中。在将视频添加到演员表之后,我会立即通过将bool设置为true将下一个视频添加到队列中。
func loadSelectedItem(_ media: VideoMediaInformation, byAppending appending: Bool) {
if let remoteMediaClient = sessionManager.currentCastSession?.remoteMediaClient {
let mediaQueueItemBuilder = GCKMediaQueueItemBuilder()
mediaQueueItemBuilder.mediaInformation = media.mediaInfo
mediaQueueItemBuilder.autoplay = true
mediaQueueItemBuilder.preloadTime = 1.0
let queueOptions = GCKMediaQueueLoadOptions()
queueOptions.playPosition = media.currentTime ?? 0.0
if appending {
let request = remoteMediaClient.queueInsert(mediaQueueItemBuilder.build(), beforeItemWithID: kGCKMediaQueueInvalidItemID)
request.delegate = self
} else {
let request = …Run Code Online (Sandbox Code Playgroud) 在我的许多 EJS 页面上,我有以下代码:
<%- include('elements/fbviewpagepixel.ejs') %>
Run Code Online (Sandbox Code Playgroud)
除了这一页外,它工作得很好。在那个页面上,它给了我一个错误说include is not a function。看起来我可以通过将上面的代码更改为以下代码来修复它:
<%- include elements/fbviewpagepixel.ejs %>
Run Code Online (Sandbox Code Playgroud)
为什么第一个版本适用于我的所有页面,除了这个页面?为什么在这一页上给我一个错误?两者之间甚至有什么区别?
VS Code 有没有办法让它在切换分支时自动关闭已删除的文件选项卡?我倾向于在Tower中切换分支,当我返回 VS Code 时,一堆已删除的文件仍然显示为打开的选项卡。当我在整个项目中进行重命名时,这会导致混乱,因为它会将文件重新添加回项目。
有没有办法解决这个问题,让它在切换分支时关闭已删除的文件选项卡?
我在 Node/Express 中有以下代码,它发送一个文件作为响应,然后使用超时删除该文件。
res.sendFile(req.params.id, { root: process.env.UPLOADPATH });
setTimeout(function () {
if (fs.existsSync(process.env.UPLOADPATH + req.params.id)) { // check to ensure file still exists on file system
fs.unlink(process.env.UPLOADPATH + req.params.id); // delete file from server file system after 60 seconds
}
}, 60000);
Run Code Online (Sandbox Code Playgroud)
如果我没有使用setTimeout它,它会因错误而失败。我假设 Express 执行sendFile异步操作,因此它在实际发送之前删除了文件。
有没有更好的方法来做到这一点?有没有办法检查文件何时发送,以便我可以安全地删除它?也许像sendFile回调之类的?
使用这个堆栈溢出问题,我有以下代码。
let numbers = [1,[2,3]] as [Any]
var flattened = numbers.flatMap { $0 }
print(flattened) // [1, [2, 3]]
Run Code Online (Sandbox Code Playgroud)
取而代之的扁平设定为[1, [2, 3]]我希望它是[1, 2, 3]。
在Swift中最简单/最干净的方法是什么?
在JavaScript中,扩展运算符的放置和排序是否重要?
var item = {/* key value pairs here */};
var itemB = {/* key value pairs here */};
Run Code Online (Sandbox Code Playgroud)
例如,在以下代码中,代码段newItem总是具有相同的键值对?
var newItem = {
...item,
...itemB
};
Run Code Online (Sandbox Code Playgroud)
如
var newItem = {
...itemB,
...item
};
Run Code Online (Sandbox Code Playgroud) 我需要将用户与发票链接起来。在 SQL 数据库中,它是一个外键。我如何在 Dynamoose 中执行此操作?
const dynamoose = require('dynamoose');
const uuid = require('uuid');
const config = require('../config/config').get(process.env.NODE_ENV);
dynamoose.aws.sdk.config.update({
region: config.awsRegion,
accessKeyId: config.awsAccessKeyId,
secretAccessKey: config.awsSecretKey
});
const userSchema = new dynamoose.Schema({
uid: {
type: String,
hashKey: true,
default: uuid.v1(),
},
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String,
require: true
},
token: {
type: String
}
});
module.exports = dynamoose.model('User', userSchema);
Run Code Online (Sandbox Code Playgroud)
其他表中的每条记录的所有者都必须是创建它的用户。
我正在尝试使用 Swift 中的 Network.framework 为我的 iOS 应用程序获取在本地网络上运行的 Bonjour 服务列表。为了发现与我的应用程序运行时使用相同协议版本的设备,我需要能够查看网络上运行的 Bonjour 服务的 TXT 记录。但是,当我尝试打印时result.endpoint.txtRecord总是返回零。
下面是我的代码示例(经过简化以重点关注此示例的关键部分):
let parameters = NWParameters.tcp
parameters.includePeerToPeer = true
parameters.allowLocalEndpointReuse = true
let browser = NWBrowser(for: .bonjour(type: "_tictactoe._tcp", domain: nil), using: parameters)
browser.browseResultsChangedHandler = { results, changes in
for result in results {
print("Browser result. txtRecords: \(result.endpoint.txtRecord)")
}
}
Run Code Online (Sandbox Code Playgroud) javascript ×4
ios ×3
node.js ×3
swift ×3
express ×2
arrays ×1
bonjour ×1
chromecast ×1
dynamo-local ×1
dynamoose ×1
ecmascript-6 ×1
ejs ×1
google-cast ×1
ipad ×1
json ×1
mdns ×1
object ×1
uistoryboard ×1