我有一个简单的Node / Express路由,如下所示:
class CombineTag < ActiveRecord::Base
belongs_to :habit
belongs_to :goal
belongs_to :quantified
belongs_to :valuation
belongs_to :user
acts_as_taggable
end
class Habit < ActiveRecord::Base # Same goes for other models
has_many :combine_tags
acts_as_taggable
end
我遇到的问题是,如果我传递一个URL作为参数,我会收到“无法获取”错误。所以,如果我这样称呼:
var app = express();
app.get('gettags/:page', function(request,response)
{
var thePage = request.params.page;
...
...
}
我收到“无法获取”错误。我使用Node已经有几年了,所以我可能会忘记一些非常基本的东西。但我无法理解这一点,谷歌搜索这个问题并没有发现任何有用的东西。
感谢您的帮助!
答案 0 :(得分:3)
您的节点代码看起来不错,但要实现这一点,您需要对您的参数进行URI编码:
var url = 'http://www.mynodeapp.com/gettags/' + encodeURIComponent('http://www.someurl.com/?withquery=something')
//becomes: http://www.mynodeapp.com/gettags/http%3A%2F%2Fwww.someurl.com%2F%3Fwithquery%3Dsomething
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
答案 1 :(得分:0)
您的代码中的问题是
{p> /的http://www.someurl.com
因此,要克服这一点,请在节点中使用url编码功能,例如
encodeURIComponent("Your url goes here")