我想在`main()`中的模块中启动Rocket但是失败了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想在`main()`中的模块中启动Rocket但是失败了相关的知识,希望对你有一定的参考价值。

我想在main()的模块中启动Rocket,因此可以简化main()但我失败了。我用火箭修改了Quicktart

代码:

mod myRocket {
    #![feature(plugin)]
    #![plugin(rocket_codegen)]
    extern crate rocket;

    #[get("/")]
    fn index() -> &'static str {
        "Hello, world!"
    }

    pub fn startup() {
        rocket::ignite().mount("/", routes![index]).launch();
    }
}


fn main() {
    myRocket::startup();
}

错误:

error: cannot find macro `routes!` in this scope
--> srcmain.rs:12:37
|
12 |         rocket::ignite().mount("/", routes![index]).launch();
|

我不知道如何解决它。

答案

我成就了。我的项目的箱子是rocket_demo

卖弄.人生

extern crate rocket_demo; 

use rocket_demo::my_rocket;

fn main() {
    my_rocket::startup();
}

礼拜.人生

#![feature(plugin)]
#![plugin(rocket_codegen)]
extern crate rocket;

pub mod my_rocket;

前三行不能在my_rocket / mod.rs中,否则routes!将无法找到!

my_rocket / mod.rs

#[get("/")]
fn index() -> &'static str {
    "Hello, world!"
}

pub fn startup() {
    ::rocket::ignite().mount("/", routes![index]).launch();
}

以上是关于我想在`main()`中的模块中启动Rocket但是失败了的主要内容,如果未能解决你的问题,请参考以下文章

QML导入模块

npm main:用于浏览器repos的index.js

如何在生产中使用 Rocket 运行 Diesel 迁移?

导入js中的React Native调用组件

Flutter 中的闪屏实现

QML 导入模块