首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift simple Kitura app localhost没有运行吗?

Swift simple Kitura app localhost没有运行吗?
EN

Stack Overflow用户
提问于 2019-02-17 04:51:09
回答 1查看 288关注 0票数 4

第一篇文章!

我是一个学习swift的学生,我正在上一个相当大的速成课程。我的教授上一次开始教我们如何做简单的get和post请求,但我仍然在迎头赶上,显然还没有掌握一些基础知识。

这是我第一次使用Kitura,也是第二次在Swift中编码。由于某些原因,当我使用swift run时,我得到了打印结果,并且突然出现"Program and with exit code : 0“,而不是让本地主机在我的8080端口上运行来验证我在localhost:8080/上的get响应。

有没有人能帮我找出我没看到的地方?或者还不了解服务器端的swift和命令行?

代码语言:javascript
复制
print("Hello, world from Swift Main!")

import Kitura

//constant router
let router = Router()


//When the router gets a request (contains everything needed to interpret the request), the server will respond with (Hello World or whatever data)
router.get("/") { request, response, next in
    response.send("Hello world from router.get") //response
    next() //either end the route or go on to the next one
}

//What port for the server to run on
Kitura.addHTTPServer(onPort: 8080, with: router)


//Need to add routes before run(), either in different file or on main
Kitura.run()

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-02-17 06:31:53

您提供的代码是正确的,因此可能是您的项目结构不正确。

为了正确创建工程,您可以按照以下步骤操作:

  1. 创建一个新目录,例如jamie。从该目录中的
  2. 运行swift package init --type=executable以创建一个新项目。该项目将在目录名之后命名为jamie
  3. 编辑Sources/jamie/main.swift并添加代码。
  4. 编辑Package.swift并将以下内容添加到“

”包的依赖项中:.package(url: "https://github.com/IBM-Swift/Kitura.git", .upToNextMajor(from: "2.5.0")),

  1. 编辑Package.swift并添加作为"jamie“目标的依赖项列表:dependencies: ["Kitura"]),

然后就可以正常运行了。如果没有,可能是因为您尝试使用的端口已在使用中。如果您将记录器添加到项目中,如果Kitura无法绑定到端口,则它将记录一条错误消息。为此,请执行以下步骤:

  1. 编辑Package.swift并将以下内容添加到"Jamie“包的依赖项中:

.package(url: "https://github.com/IBM-Swift/HeliumLogger.git", .upToNextMinor(from: "1.7.1")),

  1. 编辑Package.swift并将记录器添加到"jamie“目标的依赖项列表中,以使其变为:

dependencies: ["Kitura", HeliumLogger"])

  1. 编辑Sources/jamie/main.swift并将以下内容添加到文件顶部:

导入LoggerAPI导入HeliumLogger HeliumLogger.use(LoggerMessageType.info)

如果端口已在使用中,您将收到类似于以下内容的消息:

[2019-02-17T12:01:40.723Z] [ERROR] [Kitura.swift:139 start()] Error listening on port 8080: Error code: -9992(0x-2708), Address already in use. Use server.failed(callback:) to handle

如果你还没有,作为http://slack.kitura.io加入Kitura slack组织可能是值得的

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54727538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档