ajax - 服务多个静态文件并在 golang 中发出 post 请求
问题描述
我两天前才开始使用 Golang,所以这可能很简单,但对我来说却很难。
我的问题的第一步是在“/static”目录下提供多个文件,我已经知道该怎么做(
func main() {
fs := http.FileServer(http.Dir("./static"))
http.Handle("/", fs)
log.Println("Listening on :3000...")
err := http.ListenAndServe(":3000", nil)
if err != nil {
log.Fatal(err)
}
})
),但我也想发出 POST 请求(将信息保存到 MongoDB 数据库),这是让我难过的部分。有一个代码示例确实允许提供一个静态文件和一个 POST 请求,但我无法用我的能力进行修改。这个示例可以在这里找到:https://www.golangprograms.com/example-to-handle-get-and-post-request-in-golang.html。我可以以某种方式提供多个静态文件(最好在“静态”目录下)吗?
解决方案
编写一个处理程序来调用fs
非 POST 请求:
type handler struct {
next http.Handler
}
func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if r.Method != "POST" {
h.next.ServeHTTP(w, r)
return
}
// write post code here
}
像这样使用处理程序:
func main() {
fs := http.FileServer(http.Dir("./static"))
http.Handle("/", handler{fs})
log.Println("Listening on :3000...")
err := http.ListenAndServe(":3000", nil)
if err != nil {
log.Fatal(err)
}
}
推荐阅读
- ios - Swift、SceneKit 和相机位置
- reactjs - Typescript 中的 Highmaps:未显示地图
- batch-file - 使用 Windows 批处理文件分配声纳扫描仪质量配置文件
- java - 连接两个整数的二进制表示
- unity3d - 使用构建的应用程序时,Unity Prefabs 不会加载
- php - 检索 API 问题时的 Codeigniter 单引号
- typescript - 在扩展(pw_teaser)中使用“stdWrap.parseFunc.short”格式化输出 - Typo3
- excel - 保存工作簿的 vba 例程没有预期的结果
- yii2 - 如何从某个值开始primary_key?
- c++ - 使用更大的 ArUco 标记提高姿势的准确性