第一篇文章!
我是一名学习敏捷的学生,并且正在参加相当大的速成课程。上次,我的教授开始教我们如何进行简单的获取和发布请求,但是我仍然在追赶,很显然还没有掌握一些基本知识。
这是我第一次与Kitura合作,也是第二次在Swift中进行编码。出于某种原因,当我使用swift run
时,我得到了打印,并突然出现“程序以退出代码结尾:0”,而不是在8080端口上运行本地主机来验证我在localhost:8080/
上的响应。
有人可以帮我弄清楚我没看到什么吗?还是对服务器端swift和命令行不了解?
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()
谢谢!
答案 0 :(得分:3)
您提供的代码是正确的,因此可能是您的项目结构不正确。
为了正确创建项目,可以按照以下步骤操作:
1.创建一个新目录,例如jamie
。
2.从该目录运行swift package init --type=executable
创建一个新项目。该项目将在目录名称后称为jamie
。
3.编辑Sources/jamie/main.swift
并添加您的代码。
4.编辑Package.swift
并将以下内容添加到“ Jamie”包的依赖项中:
.package(url: "https://github.com/IBM-Swift/Kitura.git", .upToNextMajor(from: "2.5.0")),
。
5.编辑Package.swift
并添加作为“ jamie”目标的依赖项列表:
dependencies: ["Kitura"]),
那应该可以正确运行。如果不是,则可能是因为您要使用的端口已在使用中。如果将记录器添加到项目中,如果Kitura无法绑定到端口,它将记录一条错误消息。为此,请按照以下步骤操作:
Package.swift
并将以下内容添加到“ Jamie”包的依赖项中:.package(url: "https://github.com/IBM-Swift/HeliumLogger.git", .upToNextMinor(from: "1.7.1")),
。 Package.swift
并将记录器添加到“ jamie”目标的依赖项列表中,使其成为:dependencies: ["Kitura", HeliumLogger"])
,编辑Sources/jamie/main.swift
并将以下内容添加到文件顶部:
import LoggerAPI
import 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懈怠组织