У меня та же проблема, что и у этой проблемы с github .
На стр.110, окончательная версия Phoenix in Action 1.4
говорит:
Вам нужно сделать еще одну вещь, прежде чем вы сможете запустить сервер.Phoenix требует, чтобы вы сообщили, какую библиотеку вы хотите использовать при обработке данных в формате JSON.Библиотека по умолчанию, которую использует Phoenix, называется Jason, и это то, что вы также будете использовать.На верхнем уровне вашего зонтичного приложения вам нужно настроить зависимость Phoenix для использования Jason.В auction_umbrella/config/config.exs
добавьте последнюю строку в следующий список:
use Mix.Config
import_config "../apps/*/config/config.exs"
config :phoenix, :json_library, Jason
Я так и сделал, но когда я перехожу в каталог apps/auction_web
и пытаюсь запустить сервер:
$ iex -S mix phx.server
Я получаю сообщение об ошибке:
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
warning: failed to load Jason for Phoenix JSON encoding
(module Jason is not available).
Ensure Jason exists in your deps in mix.exs,
and you have configured Phoenix to use it for JSON encoding by
verifying the following exists in your config/config.exs:
config :phoenix, :json_library, Jason
(phoenix) lib/phoenix.ex:40: Phoenix.start/2
(kernel) application_master.erl:273: :application_master.start_it_old/4
Compiling 11 files (.ex)
== Compilation error in file lib/auction_web/endpoint.ex ==
** (ArgumentError) invalid :json_decoder option. The module Poison is not loaded and could not be found
(plug) lib/plug/parsers/json.ex:54: Plug.Parsers.JSON.validate_decoder!/1
(plug) lib/plug/parsers/json.ex:32: Plug.Parsers.JSON.init/1
(plug) lib/plug/parsers.ex:245: anonymous fn/3 in Plug.Parsers.convert_parsers/2
(elixir) lib/enum.ex:1899: Enum."-reduce/3-lists^foldl/2-0-"/3
(plug) lib/plug/parsers.ex:228: Plug.Parsers.convert_parsers/2
(plug) lib/plug/parsers.ex:224: Plug.Parsers.init/1
(plug) lib/plug/builder.ex:302: Plug.Builder.init_module_plug/4
(plug) lib/plug/builder.ex:286: anonymous fn/5 in Plug.Builder.compile/3
~/phoenix_apps/auction_umbrella/apps/auction_web$
Другая информация:
$ mix phx.new --version
Phoenix v1.4.0
Затем я попытался добавить зависимость jason
в оба файла mix.exs дляприложение зонтика, а также файл mix.exs для приложения auction_web, затем я сделал mix deps.get
в обоих каталогах, содержащих файл mix.exs, и при попытке запустить сервер я все еще получаю ту же ошибку.