错误:未定义函数router/2(期望MyApp.Endpoint定义这样的函数或将其导入,但没有可用)

问题描述 投票:0回答:0

我有这个长生不老药模块:

defmodule MyApp.Router do
  use Plug.Router

  plug :match
  plug :dispatch

  get "/" do
    send_resp(conn, 200, "Hello, World!")
  end
end

我运行

mix compile --no-halt
,我得到:

% mix run --no-halt

===> 正在分析应用程序... ===> 编译cowboy_telemetry ==>plug_cowboy 编译 5 个文件 (.ex) 警告:Logger.warn/1 已弃用。使用 Logger.warning/2 代替 lib/plug/cowboy.ex:352: Plug.Cowboy.to_args/5

生成的plug_cowboy应用程序 ==> myapp 编译 2 个文件 (.ex) 错误:未定义函数 router/2 (期望 MyApp.Endpoint 定义这样的函数或将其 已导入,但没有可用的)lib/my_app/endpoint.ex:1: MyApp.Endpoint.plug_builder_call/2

== 文件 lib/my_app/endpoint.ex 中出现编译错误 == **(编译错误)lib/my_app/endpoint.ex:无法编译模块 MyApp.Endpoint(已记录错误)

我不知道这个错误意味着什么,我的 mix.exs 文件如下:

defmodule My.Api.MixProject do
  use Mix.Project

  def project do
    [
      app: :myapp,
      version: "0.1.0",
      elixir: "~> 1.15",
      start_permanent: Mix.env() == :prod,
      deps: deps()
    ]
  end

 
  def application do
    [
      extra_applications: [:logger],
      mod: {MyApp.Endpoint, []}
    ]
  end

 
  defp deps do
    [
      {:plug_cowboy, "~> 2.6"},
      {:cowboy, "~> 2.10"},
      {:plug, "~> 1.12"}

    ]
  end
end
elixir elixir-mix cowboy plug
© www.soinside.com 2019 - 2024. All rights reserved.