我试图在Node.js中使用Socket.IO,并试图让服务器为每个Socket.IO客户端提供一个标识.由于套接字代码超出了http服务器代码的范围,因此它无法轻松访问发送的请求信息,因此我假设它需要在连接期间发送.什么是最好的方法
1)通过Socket.IO获取有关谁连接的信息
2)验证他们说自己是谁(我目前正在使用Express,如果这让事情变得更容易)
我正在使用厨师来部署rails/node应用程序.当我从公共github存储库部署时,所有部署都很好.我想从私有github存储库部署,但我很难这样做.这是我目前正在做的事情
cd ~/.ssh # change directory to my .ssh directory
ssh-keygen -f'deploy_key' -N '' # create a deploy_key key pair without a passphrase
cat deploy_key.pub | pbcopy # copy the public key into my clipboard
-go to https://github.com/HairyMezican/PrivateRepoName/admin/keys
-click on 'Add another deploy key'
-type 'deploy_key' into 'Title' field
- ?V (paste command) into 'Key' field
-click 'Add Key'
tr "\n" "#" < deploy_key | sed 's/#/\\n/g' | pbcopy #copy the private key into my clipboard, except with all of …Run Code Online (Sandbox Code Playgroud) 在config/routes.rb中:
resources :posts do
resources :comments
end
resources :pictures do
resources :comments
end
Run Code Online (Sandbox Code Playgroud)
我想允许更多的事情被评论.
我目前正在使用mongoid(mongomapper并不像我想的那样与Rails 3兼容),而注释是一个嵌入式资源(mongoid还不能处理多态关系资源),这意味着我确实需要父资源为了找到评论.
有没有优雅的方法来处理以下一些问题:
在我的控制器中,我需要在找到评论之前找到父母:
if params[:post_id]
parent = Post.find(params[:post_id]
else if params[:picture_id]
parent = Picture.find(params[:picture_id]
end
Run Code Online (Sandbox Code Playgroud)
如果我开始添加更多可评论的内容,那将会变得混乱.
也url_for([comment.parent, comment])不起作用,所以我将不得不在我的Comment模型中定义一些东西,但我认为我还需要在Comment模型中定义索引路径以及可能的编辑和新路由定义.
随着我的进一步发展,我可能会遇到更多问题.
我无法想象我是第一个尝试解决这个问题的人,是否有任何解决方案可以使其更易于管理?
似乎有多种方法可以从另一个文件访问一个文件.为什么我会选择一种方法而不是另一种?
local a = loadfile('foo.lua')()
local b = require 'foo.lua'
local c = import 'foo.lua'
Run Code Online (Sandbox Code Playgroud) 我正在使用ActiveMerchant让我的rails应用程序访问Paypal的Express Checkout.我想在审核页面上包含订单详细信息,如下所述:https://cms.paypal.com/us/cgi-bin/?cmd = _render-content&content_ID = developer/e_howto_api_ECCustomizing
可以这样做吗?
目前,我的控制器代码如下所示:
def paypal
#currently, options is unused, I'm not sure where to send this info
options = {
:L_NAME0=>"Tickets",
:L_QTY0=>@payment.quantity,
:L_DESC0=>"Tickets for #{@payment.event_name}",
:L_AMT0=>@payment.unit_price
}
#the actual code that gets used
setup_response = gateway.setup_purchase(@payment.amount,
:ip=> request.remote_ip,
:return_url=> url_for(:action=>:confirm, :id=>@payment.id, :only_path=>false),
:cancel_return_url => url_for(:action=>:show, :id=>@payment.id, :only_path=>false)
)
redirect_to gateway.redirect_url_for(setup_response.token)
end
Run Code Online (Sandbox Code Playgroud)
如果我想做的事情是可能的,我需要改变什么?
我正在尝试添加一个非常简单的策略来设计,它似乎并没有起作用.这是我尝试使用的代码
#config/initializers/devise.rb
Devise.setup do |config|
config.orm = :mongo_mapper
config.warden do |manager|
manager.strategies.add(:auto_login_strategy) do
def valid?
params[:auto_login]
end
def authenticate!
u = User.find(:first)
u.nil? ? fail!("No created users") : success!(u)
end
end
manager.default_strategies(:scope=>:user).unshift :auto_login_strategy
end
end
Run Code Online (Sandbox Code Playgroud)
代码应该检查params的'auto_login'参数,如果存在,找到它可以的第一个用户并登录.我完全跳过安全措施,只是让一个基本的测试用例工作.当我尝试登录到具有before_filter authenticate_user!(即localhost:3000/test?auto_login=true)的控制器时,它无法登录并重定向到登录页面.我究竟做错了什么?
我在nodejs中使用express,并试图让我的视图呈现干燥.在我的布局中,我有以下内容(我正在使用玉)
body
nav.login
-if(currentUser)
="logged in information"
-else
="logged out information"
!=body
Run Code Online (Sandbox Code Playgroud)
问题是,每次渲染时,我都需要拥有
res.render('anything.jade',{
locals: {
currentUser: req.session.currentUser,
/*all of my other locals*/
}
});
Run Code Online (Sandbox Code Playgroud)
如果我必须将任何其他本地添加到布局中,那么必须完成所有渲染调用并添加它,然后执行相同的操作似乎很痛苦.是否有一些方法可以避免重新键入'currentUser'到我渲染的各地的本地人