问题:
我很难找到问题的答案,我很可能不知道如何提出这个问题。
我在使用 Go Server 时遇到问题。我对 go 编程没有任何了解,但我确实用它制作了一个服务器。该服务器将显示一个 JSON 文件,然后将拉取我现在不相关的其他 HTML 文件。这行得通。我的问题是服务器的路径。
代码
package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
"time"
)
type Event struct {
Start time.Time `json:"start"`
End time.Time `json:"end"`
Summary string `json:"summary"`
Organizer string `json:"organizer"`
MeetURL string `json:"meet_url"`
}
type EventSlice struct {
Events []Event `json:"events"`
}
func loadEvents(filename string) (EventSlice, error) {
// Open events file.
file, err := os.Open(filename)
if err != nil {
return EventSlice{}, err
}
var list EventSlice
// Parse events from json file to events slice.
err = json.NewDecoder(file).Decode(&list)
if err != nil {
fmt.Println("Displays", err)
return EventSlice{}, err
}
return list, nil
}
func handler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
events, err := loadEvents("json.json")
if err != nil {
fmt.Fprintln(w, err)
}
// Reduntant step in real life
err = json.NewEncoder(w).Encode(events)
if err != nil {
fmt.Fprintln(w, err)
}
}
func handler_over(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "This is my server. Hello.")
}
func main() {
http.HandleFunc("/", handler_over)
http.HandleFunc("/events", handler)
http.ListenAndServe(":8080", nil)
}
如果我去运行服务器,然后在此 url 上将路径更改为示例:http://0.0.0.0:8080/otherpath ,它仍然会显示 handler_over 的功能。这将显示一个字符串:This is my server.Hello。
我必须做什么,所以当您将 URL 更改为未知路径(这不是路径)时,它将显示类似 404 Page not found 的错误。也就是说,服务器上只能识别 2 个路径:“/”路径和“/events”路径。
注意 以前可能已经问过这个问题,但我不知道如何提出这个问题。任何帮助或对答案的重定向将不胜感激。
最佳答案
func handler_over(w http.ResponseWriter, r *http.Request) {
// The "/" pattern matches everything, so we need to check
// that we're at the root here.
if r.URL.Path != "/" {
http.NotFound(w, req)
return
}
fmt.Fprintf(w, "This is my server. Hello.")
}
关于http - 在 HTTP 路由器中将未知的 URL 路径设置为错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51476107/
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,
Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
我在使用omniauth/openid时遇到了一些麻烦。在尝试进行身份验证时,我在日志中发现了这一点:OpenID::FetchingError:Errorfetchinghttps://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username:undefinedmethod`io'fornil:NilClass重要的是undefinedmethodio'fornil:NilClass来自openid/fetchers.rb,在下面的代码片段中:moduleNetclass
我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击
是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou
从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问
我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.