我正在尝试创建一个基于Twitter的身份验证的基本应用程序,并通过库codebird-php(https://github.com/mynetx/codebird-php)代表用户发布消息
我已经复制了自述文件中显示的示例代码,并使用我的应用程序的密钥和密码更改了YOURKEY和YOURSECRET.
一切都应该工作正常,但当我加载我的页面时,我收到一条消息说:验证Twitter API证书时出现错误77.
我无法在谷歌的任何地方找到这种错误类型......意思很明显,但我不知道如何解决它.有什么想法吗?
代码如下:
require_once ('codebird.php');
\Codebird\Codebird::setConsumerKey('YOURKEY', 'YOURSECRET'); // I changed it to my settings
$cb = \Codebird\Codebird::getInstance();
session_start();
if (! isset($_SESSION['oauth_token'])) {
// get the request token
$reply = $cb->oauth_requestToken(array(
'oauth_callback' => 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
));
// store the token
$cb->setToken($reply->oauth_token, $reply->oauth_token_secret);
$_SESSION['oauth_token'] = $reply->oauth_token;
$_SESSION['oauth_token_secret'] = $reply->oauth_token_secret;
$_SESSION['oauth_verify'] = true;
// redirect to auth website
$auth_url = $cb->oauth_authorize();
header('Location: ' . $auth_url);
die();
} elseif (isset($_GET['oauth_verifier']) && isset($_SESSION['oauth_verify'])) {
// verify the …Run Code Online (Sandbox Code Playgroud) 我在过去几个月里一直在学习Node,现在有一个复杂的应用程序.我的问题是,我想让它重复使用,因为我是一个完整的菜鸟,我从一开始就没有想到这一点.
是)我有的 :
使用pm2作为守护程序运行的复杂节点/快速应用程序.
许多子进程脚本,一些在Node中,一些使用casperjs/phantomjs
数据库凭据,服务器端口等的配置文件
许多npm依赖项,一些用于应用程序本身,一些仅由子进程使用.应用程序本身运行正常,每个路径都存储在配置文件中,因此部署不应该太难.
我想做什么:
我的问题 :
我是否需要将node_modules添加到我的git repo中?
如何以最简单的方式集成应用程序部署,安装依赖项以及安装pm2,phantom和casper?我不介意制作一个剧本,但我真的不知道从哪里开始或最佳实践.我在网上看到的大部分内容都与nodejitsu/heroku有关,并不适用.
我的缺点:
希望我的问题是可以理解的,谢谢大家!
编辑:
我到目前为止:
仍在试图弄清楚如何包含外部依赖项.
我一直在将一些代码转换为异步方法.我有一个工作单元/存储库/服务设计模式,我的存储库看起来像这样:
public class Repository<T> : IDisposable, IRepository<T> where T : class
{
private readonly DbContext context;
private readonly DbSet<T> dbEntitySet;
public Repository(DbContext context)
{
if (context == null)
throw new ArgumentNullException("context");
this.context = context;
this.dbEntitySet = context.Set<T>();
}
public IQueryable<T> GetAll(params string[] includes)
{
IQueryable<T> query = this.dbEntitySet;
foreach (var include in includes)
query = query.Include(include);
return query;
}
public void Create(T model)
{
this.dbEntitySet.Add(model);
}
public void Update(T model)
{
this.context.Entry<T>(model).State = EntityState.Modified;
}
public void Remove(T …Run Code Online (Sandbox Code Playgroud) 我有一个连接到HTML文件的node/socket.io/express服务器(如此).因此,访问Web地址会将您连接到服务器.我正在尝试建立一个系统,其中服务器一次在多台计算机上运行,并通过某种用户名和密码身份验证,访问具有特定凭据的网页将您连接到具有相同权限的计算机之一运行服务器的凭据.
我见过以前类似的问题提到"Redis",但它们已经很老了,我想知道是否有更新或更好的方法来实现这一点.
我试图在js中加载QUnit但是QUnit.js中的addevent函数永远不会被触发,它只是不起作用:
var appendQUnit = document.createElement('script');
appendQUnit.src = 'js/utility/qunit/qunit.js';
appendQUnit.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(appendQUnit);
Run Code Online (Sandbox Code Playgroud) 考虑这是我的文件夹结构
express_example
|---- app.js
|---- models
|-------- songs.js
|-------- albums.js
|-------- other.js
|---- and another files of expressjs
Run Code Online (Sandbox Code Playgroud)
我的文件songs.js中的代码
var mongoose = require('mongoose')
, Schema = mongoose.Schema
, ObjectId = Schema.ObjectId;
var SongSchema = new Schema({
name: {type: String, default: 'songname'}
, link: {type: String, default: './data/train.mp3'}
, date: {type: Date, default: Date.now()}
, position: {type: Number, default: 0}
, weekOnChart: {type: Number, default: 0}
, listend: {type: Number, default: 0}
});
mongoose.model('Song', SongSchema);
Run Code Online (Sandbox Code Playgroud)
在文件albums.js中
var mongoose = …Run Code Online (Sandbox Code Playgroud) 我的程序创建了一个这样的表:
exports.createTablesPhase2= function(tableprefix,cb){
var s3 = 'CREATE TABLE IF NOT EXISTS productData (
`id` int NOT NULL AUTO_INCREMENT,
`url` varchar(255) NOT NULL,
`baseSite` varchar(255) DEFAULT NULL,
`img_url` varchar(255) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`price` varchar(15) NOT NULL,
`sale_price` varchar(15) DEFAULT NULL,
`description` text DEFAULT NULL,
`extra` varchar(255) DEFAULT NULL,
`brand` varchar(255) DEFAULT NULL,
`colors` varchar(255) DEFAULT NULL,
`sizes` varchar(255) DEFAULT NULL,
`date` date NOT NULL ,
PRIMARY KEY `id` (`id`),UNIQUE `url` (`url`));';
client.query(s3, function(err, result) {
if (err) throw …Run Code Online (Sandbox Code Playgroud) 我正在尝试在javascript中创建一个regexp来删除输入字符串中的所有html标记,除了<br>.
我/(<([^>]+)>)/ig用于标签,并尝试了一些事情,如添加[^(br)],但我现在只是感到困惑.
有人可以帮忙吗?我相信它会成为SO大师之间的速度竞赛,所以如果答案解释了表达的逻辑,我会选择其他人.
编辑:
对于所有"不要做"的人,让我引用Stack Overflow中的以下内容
虽然确实要求正则表达式解析任意HTML就像要求Paris Hilton编写操作系统一样,但有时候解析一组有限的已知HTML也是合适的.
在这种特殊情况下,它是div中的一堆文本,在许多页面内保持一致.我只是想摆脱一些用户包含跨度,强势和一些其他格式标签的情况(最多1%).在我处理的数千个页面中几乎没有发生这种情况的时候,它的价值不仅仅是时间.如果您有更好,更快的实现想法,请随意将其作为答案发布;)
编辑2
这么多评论,我想添加免责声明:使用Regexp解析HTML是不好的.它不会始终如一地工作,并且有更好的方法.已经提到了Domparser; 在Node.js上有Cheerio或jsdom,还有更多的库可以正确地解析HTML文档(在99%的情况下).在这种情况下,它更像是一个字符串碰巧包含<...>我需要删除的一些字符串.
不是重复:这个问题,因为我试图使用发布的链接作为答案来解决我的问题。
我正在创建一个小的虚拟套接字客户端来帮助测试我的一个产品,它看起来像这样:
var ee = require('events').EventEmitter;
require('http').globalAgent.maxSockets = 1000;
function Dummy(){
this.config = require('../config/credentials.js');
this.socket = require('socket.io-client')(this.config.socketIO.url);
var self = this;
this.socket.on('task', function(task) {
self.createTask(task);
});
}
util.inherits(Dummy, ee);
module.exports = Dummy;
Dummy.prototype.createTask = function(name){
var self = this;
setInterval(function sendStuff(){
self.socket.emit("msg")
}, 1000);
};
Run Code Online (Sandbox Code Playgroud)
就其本身而言,它运行良好;但是,当我尝试像这样启动其中许多时:
for (var i = 0; i < 100; i++) {
fakeClients.push(new Dummy());
};
Run Code Online (Sandbox Code Playgroud)
Is 出现在池连接中并仅显示为一个客户端。基于此链接,我认为通过使用 socket.io-client,我可以避免池化行为,但它不起作用。难道我做错了什么?顺便说一句,我简化了循环,我实际上确保在创建之间存在延迟以避免同步心跳。
想法?
以下请求为我提供了产品列表、销售它们的商店以及我需要用于其他目的的“父”商店:
SELECT `allproducts`.`id_store` , `uniques` . *
FROM `uniques`
INNER JOIN `allproducts` ON `allproducts`.`SKU` = `uniques`.`SKU`
Run Code Online (Sandbox Code Playgroud)
结果如下:
id_store SKU id_parent name sale_sdate sale_edate
1085 100768 1088 productA 5/18/2014 6/14/2014
1088 100768 1088 productA 5/18/2014 6/14/2014
1089 100768 1088 productA 5/18/2014 6/14/2014
Run Code Online (Sandbox Code Playgroud)
您可以看到在第二行,id_store 和 id_parent 是相同的(父商店也销售产品)。在这种情况下,我应该将 id_parent 替换为 0,如下所示:
id_store SKU id_parent name sale_sdate sale_edate
1085 100768 1088 productA 5/18/2014 6/14/2014
1088 100768 0 productA 5/18/2014 6/14/2014
1089 100768 1088 productA 5/18/2014 6/14/2014
Run Code Online (Sandbox Code Playgroud)
我真的很难在这个大请求中集成 IF 条件(我可以在这里发布我尝试过的所有内容,但它可能会使事情变得非常混乱)。有人可以帮忙吗?
node.js ×5
asynchronous ×2
javascript ×2
mysql ×2
socket.io ×2
async-await ×1
c# ×1
credentials ×1
deployment ×1
express ×1
git ×1
html ×1
jquery ×1
linq ×1
models ×1
mongodb ×1
mongoose ×1
php ×1
qunit ×1
regex ×1
sql ×1
twitter ×1