我使用Elixir的默认记录器模块来生成日志.但是,我没有找到在磁盘上转储日志的方法.记录器模块中是否有这样的设施?或者是否有其他Elixir/Erlang图书馆可以使用它?
我需要在nodejs中创建Excel Sheet报告,以及一些饼图/条形图.像https://github.com/SheetJS/js-xlsx和https://github.com/guyonroche/exceljs这样的软件包不提供创建图表的工具.
任何人都可以建议任何方法或现有的包,以便饼图/条形图可以包含在Nodejs的xlsx报告中吗?
我在elixir中有以下代码:
def get_trackerid(imei) do
client = get_new_client()
{:ok, result} = :cqerl.run_query(client, "SELECT * FROM trackers_by_imei where imei = \'#{imei}\';")
row = :cqerl.all_rows(result)
end
Run Code Online (Sandbox Code Playgroud)
现在,现在许多函数都在调用get_trackerid函数,每次调用函数时,都会调用数据库.
有没有办法在elixir中编写函数,结果存储在局部变量中.因此,当下次请求同一个imei的trackerid时,我可以从本地变量本身获取数据.
我认为elixir中没有全局变量的概念,所以这不是一个选项,对吧?
在下面的代码中,我在第一个Gatling请求中获取一个令牌,将其保存在名为auth的变量中.但是,当我尝试在第二个请求中使用它时,它发送空字符串代替auth变量.因此,出于某种原因,auth字符串直到在第二个请求中使用时才被更新.任何人都可以建议任何解决方法,以便我可以将一个请求中返回的值用于另一个请求吗?
码:
val headers_10 = Map("Content-Type" -> "application/x-www-form-urlencoded")
var a= "qwerty91@gmail.com"
var auth = ""
val scn = scenario("Scenario Name") // A scenario is a chain of requests and pauses
.exec(http("request_1") // Here's an example of a POST request
.post("/token")
.headers(headers_10)
.formParam("email", a)
.formParam("password", "password")
.transformResponse { case response if response.isReceived =>
new ResponseWrapper(response) {
val a = response.body.string
auth = "Basic " + Base64.getEncoder.encodeToString((a.substring(10,a.length - 2) + ":" + "junk").getBytes(StandardCharsets.UTF_8))
}
})
.pause(2)
.exec(http("request_2")
.get("/user")
.header("Authorization",auth)
.transformResponse …
Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码来渲染网络视图:
const someHTMLFile = require('./somefile.html')
render() {
return (
<View style={{flex: 1}}>
<WebView
style={{flex: 1}}
source={someHTMLFile}
ref={( webView ) => this.webView = webView}
/>
</View>
);
}
Run Code Online (Sandbox Code Playgroud)
在这个html文件中,有一个表单在webview加载时自动提交(其中一些数据是从代码的reactnative部分发送的),最后,该文件被重定向到一个特定的url,在那里完成了一些处理(在发送数据),但现在它什么也没有返回。所以屏幕一片空白。
所以,此时,我想关闭 webview 并将用户带回我的reactnative应用程序。那么,我该怎么做呢?有什么建议么?
我使用以下代码在elixir上创建TCP侦听器:
defmodule KVServer do
use Application
@doc false
def start(_type, _args) do
import Supervisor.Spec
children = [
supervisor(Task.Supervisor, [[name: KVServer.TaskSupervisor]]),
worker(Task, [KVServer, :accept, [4040]])
]
opts = [strategy: :one_for_one, name: KVServer.Supervisor]
Supervisor.start_link(children, opts)
end
@doc """
Starts accepting connections on the given `port`.
"""
def accept(port) do
{:ok, socket} = :gen_tcp.listen(port,
[:binary, packet: :line, active: false, reuseaddr: true])
IO.puts "Accepting connections on port #{port}"
loop_acceptor(socket)
end
defp loop_acceptor(socket) do
{:ok, client} = :gen_tcp.accept(socket)
{:ok, pid} = Task.Supervisor.start_child(KVServer.TaskSupervisor, fn -> serve(client) …
Run Code Online (Sandbox Code Playgroud) 我需要获取IO.puts或IO.inspect的行号或elixir控制台上出现的任何其他类型的输出以进行调试.这是否有内置功能?或者有没有其他简单的方法来实现相同的目标?
PS:IO.puts的行号,我的意思是在代码中写入IO.puts的行.