在nxweb中添加模块

时间:2013-10-09 15:09:40

标签: c webserver nxweb

我想尝试一下nxweb。所以我成功安装了它。不幸的是,文档是不存在的。在挖掘代码和INSTALL注释后,我认为我必须将C文件放在modules子目录中,并通过以下方式重新编译主可执行文件:

gcc -O2 -g main.c modules/*.c -o mynxweb `pkg-config --cflags --libs nxweb`

由于这没有用,我在main.c中找到了一些似乎处理模块注册的代码。所以我补充道:

NXWEB_HANDLER_SETUP(my_click, "/click", click, .priority=1000);

并重新编译。它编译得很好。但我在click.o目录中找不到click.c(我的源文件名为src/bin)。信息消息也没有提到我的模块。所以我对我所缺少的东西感到茫然。

也许我们可以在Stackoverflow上启动一个小的nxweb noob文档。

2 个答案:

答案 0 :(得分:3)

基本上,程序如下:

  1. source构建并安装nxweb。按照INSTALL文件中的说明操作。这将安装nxweb库。

  2. 编写模块。以bin/modules/hello.c为例。确保其中包含NXWEB_DEFINE_HANDLER(my_unique_handler_name, ...)

  3. 使用提供的main.c和您的模块构建nxweb可执行文件,将其链接到nxweb库:

    gcc -O2 -g main.c my_module.c -o mynxweb `pkg-config --cflags --libs nxweb`

  4. 通过指定应调用处理程序的URL前缀,在nxweb_config.json中配置routing表:

    { "prefix":"/my_handler_url", "handler":"my_unique_handler_name" },

  5. 启动/重启nxweb。

答案 1 :(得分:1)

我找到了它!

您还必须将模块名称和路由路径添加到nxweb_config.json

例如:

{ // see modules/click.c
  "prefix":"/click", "handler":"click"
},