TL; DR:
无法通过Express,Express-Session和Express-Cors在Backbone App和Node.js服务器之间执行的多个API调用之间保持会话持久性.看起来每次通话后会话都会重新初始化/丢失.
长版:
我正在运行客户端Backbone/React/Flux应用程序,在运行localhost:3000的Node.js服务器上执行以下调用localhost:4242:
Http电话
RESPONSE HEADERS
Content-Type application/json; charset=utf-8
Set-Cookie connect.sid=s%3AFeNYY5GQGvkyRvOym7DhysprePaQr7xP.BrxOPP56k9pDpxQPvwjDFaxkEYoHU%2FAEtNUIXGltqjI; Domain=http://localhost:3000; Path=/
Vary Origin
X-Powered-By Express
access-control-allow-credentials true
access-control-allow-orign http://localhost:3000
[...]
REQUEST HEADERS
Accept application/json, text/javascript, */*; q=0.01
Content-Type application/json; charset=utf-8
Cookie connect.sid=s%3AjP4iADZvRnDHbJcCE8H81Zy6TIehj9BJ.eDOTw44GcHqq8i2dslBGd43tXMQ22ENl31fRizdC8iA
Host localhost:4242
Origin http://localhost:3000
Referer http://localhost:3000/login
[...]
Run Code Online (Sandbox Code Playgroud)
RESPONSE HEADERS
Content-Type application/json; charset=utf-8
Set-Cookie connect.sid=s%3ARxf91_vLMBqzB6xN-0QFIIk_-SyBP9_8.F1Mr%2BVSkYNJ6MqnzO%2BsxxfwXRinIX6th80SoukG1QBM;Domain=http://localhost:3000; Path=/
Vary Origin
X-Powered-By Express
access-control-allow-credentials true
access-control-allow-orign http://localhost:3000
[...]
REQUEST HEADERS
Accept application/json, text/javascript, */*; q=0.01
Content-Type application/json; …Run Code Online (Sandbox Code Playgroud) 每当针对我的仅使用API的Rails 5.x应用程序发送格式错误的JSON时,我都会收到异常,并且Rails将整个堆栈跟踪作为JSON返回.显然,我想回答一个很好的,自定义的,格式化的错误.
=> Booting Puma
=> Rails 5.0.0.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.0-p0), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
Started POST "/api/v1/identities/" for ::1 at 2016-10-26 18:42:32 +0200
ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
Error occurred while parsing request parameters.
Contents:
{
"whatever": …Run Code Online (Sandbox Code Playgroud) 我开始使用 ASP.net MVC4,并使用 Internet 应用程序模板创建了一个项目。
我在 UserProfile 默认模型和表中添加了一些自定义字段,我还将其重命名为“UserModel”,并且它工作得很好(登录、注册等)
我现在尝试向另一个实体执行 SQL 请求,因此我需要获取当前登录用户的 ID。我发现我必须用来Membership.GetUser()访问当前用户,但我现在完全陷入了这个错误:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
Description: An unhandled exception occurred during the execution of the current web request. Please review the …Run Code Online (Sandbox Code Playgroud) 我有一个 rails/backbone 单页应用程序处理大量 SQL 查询。
这是请求:
SELECT * FROM `posts` WHERE `thread_id` = 1
Run Code Online (Sandbox Code Playgroud)
比这个更快:
SELECT `id` FROM `posts` WHERE `thread_id` = 1
Run Code Online (Sandbox Code Playgroud)
选择未使用的列对查询执行时间的影响有多大?
我正在尝试设置一些在 active_resource gem (ActiveResource) 之上工作的 Rails 模型
module Core
class RestResource < ActiveResource::Base
self.format = :json
end
end
module Core
module API
class BaseModel < ::Core::RestResource
self.site = ENV['API_URI']
self.headers['Api-Token'] = ENV['API_TOKEN']
end
end
end
module Core
module API
class MyModel < ::Core::API::BaseModel
end
end
end
Run Code Online (Sandbox Code Playgroud)
我正在尝试运行 Rails 控制台,如下所示
2.3.1 :001 > MyModel = Core::API::MyModel
=> Core::API::MyModel
2.3.1 :002 > MyModel.all
ArgumentError: expected an attributes Hash, got ["data", [{"first_name"=>"walter", "last_name"=>"white", "timestamp"=>1478515925}]]
from /Users/nakwa/.rvm/gems/ruby-2.3.1/bundler/gems/activeresource-f4bec7f8f389/lib/active_resource/base.rb:1377:in `load'
from /Users/nakwa/.rvm/gems/ruby-2.3.1/bundler/gems/activeresource-f4bec7f8f389/lib/active_resource/base.rb:1124:in `initialize'
from /Users/nakwa/.rvm/gems/ruby-2.3.1/bundler/gems/activeresource-f4bec7f8f389/lib/active_resource/base.rb:1051:in `new' …Run Code Online (Sandbox Code Playgroud) 我有为PHP 5.4.x编写的以下类.这应该像我期望的那样工作吗?
class SqlBuilder {
private $dbTable;
private $action;
private $data;
private $clause;
public function toString() {
// $sql = generate sql string
// [...]
return $sql;
}
[...]
public function setClause($clause) {
$this->clause = $clause;
}
public function setDbTable($dbTable) {
$this->dbTable = $dbTable;
}
public function setAction($action) {
$this->action = $action;
}
}
$sql = (new \dbal\SqlBuilder())
->setAction($this->action)
->setClause($this->clause)
->setDbTable($this->dbTable)
->toString();
Run Code Online (Sandbox Code Playgroud)
我希望能够访问我的所有setter方法.相反,我看到以下错误:
致命错误:在非对象上调用成员函数toString()
这似乎有效:
$builder= new \dbal\SqlBuilder();
$builder->setAction($this->action)
$builder->setClause($this->clause)
$builder->setDbTable($this->dbTable)
$sql = $builder->toString();
Run Code Online (Sandbox Code Playgroud)
但我知道这也有效:
class Foo
{
public $a …Run Code Online (Sandbox Code Playgroud)