這是我第一次嘗試在Erlang中寫任何東西,所以也許這個問題很愚蠢。Erlang的dets不會創建open_file文件
我用牛仔
db_name() -> "DB_test".
timestamp() ->
calendar:datetime_to_gregorian_seconds(calendar:universal_time()).
sha(Str) ->
<<X:256/big-unsigned-integer>> = crypto:hash(sha256, Str),
lists:flatten(io_lib:format("~64.16.0b", [X])).
handle_post(Req0, State) ->
Link = binary_to_list(cowboy_req:header(<<"link">>, Req0)),
dets:open_file(db_name(), []),
dets:insert(db_name(), {hashed_url(Link), Link, timestamp()}),
Req = cowboy_req:reply(200,
#{<<"content-type">> => <<"text/plain">>},
sha(Link),
Req0),
{ok, Req, State}.
寫一個很簡單的HTTP服務器的想法是,一個HTTP POST請求包含一個「鏈接」了一些鏈接頭。接收到這樣的請求後,我的服務器應該將它的哈希存儲在dets表中以及鏈接和它的時間戳。問題是沒有創建「DB_test」文件。爲什麼?