小编Met*_*kin的帖子

如何捕获fs.readFileSync()没有文件?

在node.js中,readFile()显示了如何捕获错误,但是没有关于错误处理的readFileSync()函数的注释.因此,如果我在没有文件时尝试使用readFileSync(),我会收到错误Error: ENOENT, no such file or directory.

如何捕获抛出的异常?doco没有说明抛出了什么异常,所以我不知道我需要捕获哪些异常.我应该注意到,我不喜欢通用的'捕获每一个可能的异常'样式的try/catch语句.在这种情况下,我希望捕获文件不存在时发生的特定异常,并尝试执行readFileSync.

请注意,我在启动连接尝试之前只在启动时执行同步功能,因此不需要我不应该使用同步功能的注释:-)

error-handling try-catch node.js

118
推荐指数
4
解决办法
8万
查看次数

如何纠正has_many/belongs_to与paper_trail关联的版本

我在rails中使用paper_trail来跟踪我的模型版本.但在GitHub库的文件表明,创业板不支持has_many,belongs_to协会.

假设我有一个应用程序记录了一些comapnies的ceos名称:

class Company < ActiveRecord::Base
  has_many :ceos
  has_paper_trail
end

class Ceo < ActiveRecord::Base
  belongs_to :companies
  has_paper_trail
end
Run Code Online (Sandbox Code Playgroud)

以上示例代表ABC Inc.的信息.

company.name => "ABC"
company.ceo.past => "John Henry"
company.ceo.present =>  "Amy Warren"
Run Code Online (Sandbox Code Playgroud)

如何实施以下操作,以便将公司和公司的ceos名称重置为上一版本?

associations has-many ruby-on-rails-3.1 paper-trail-gem

22
推荐指数
1
解决办法
1316
查看次数

向AppIndicator添加滑块(Ubuntu 11.04)

我正在尝试向AppIndicator添加一个类似于Sound Menu的滑块.

我查看了声音菜单的代码,发现我应该使用libido-0.1.

这是我到目前为止所拥有的:

indicator_menu = gtk_menu_new();
ido_slider_widget = ido_scale_menu_item_new_with_range("BRIGHTNESS", IDO_RANGE_STYLE_DEFAULT,  0, 0, 100, 1);
ido_scale_menu_item_set_primary_label(IDO_SCALE_MENU_ITEM(ido_slider_widget), "BRIGHTNESS");
ido_scale_menu_item_set_style(IDO_SCALE_MENU_ITEM(ido_slider_widget), IDO_SCALE_MENU_ITEM_STYLE_LABEL);
ido_scale_menu_item_set_primary_label(IDO_SCALE_MENU_ITEM(ido_slider_widget), " - ");
ido_scale_menu_item_set_secondary_label(IDO_SCALE_MENU_ITEM(ido_slider_widget), " + ");

GtkMenuItem *menu_slider_item = GTK_MENU_ITEM(ido_slider_widget);

gtk_menu_append(indicator_menu, GTK_WIDGET(menu_slider_item));
gtk_menu_append(indicator_menu, gtk_menu_item_new_with_label("dfdsfds"));

gtk_widget_show_all(indicator_menu);
gtk_widget_show_all(ido_slider_widget);

app_indicator_set_menu(indicator, GTK_MENU(indicator_menu));
Run Code Online (Sandbox Code Playgroud)

我看到的只是菜单中的' - '符号,我该如何解决这个问题?

gtk appindicator

21
推荐指数
1
解决办法
481
查看次数

将nvarchar值转换为数据类型int时转换失败

我创建了下面列出的过程:

CREATE procedure getdata
(
    @ID int,
    @frm varchar(250),
    @to varchar(250)
)
AS
BEGIN

DECLARE @SQL nvarchar(500)


set @SQL = 'select'
set @SQL = @SQL + ' EmpName, Address, Salary from Emp_Tb where 1=1 '

IF (@ID <> '' and @ID is not null)     
  Begin     
   SET @sql=@sql+' AND Emp_Id_Pk=' +@ID   
  End 
END

print @sql
--execute (@sql)
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法执行它:

**execute getdata 3,'','';**
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

将nvarchar值'select EmpName,Address,Salary从Emp_Tb转换为1 = 1 AND Emp_Id_Pk ='转换为数据类型int时转换失败

请帮忙.

sql

21
推荐指数
2
解决办法
19万
查看次数

gcc:找不到/ usr/local/lib中的链接库,但/etc/ld/so.conf.d/libc.conf列出了它?

我遇到了共享库和gcc的问题.起初我无法运行我编译的程序,因为我收到以下错误:加载共享库时出现gcc错误.

我做了一些搜索,发现这是因为无法找到共享库.但是我已经确定共享库位于/ usr/local/lib中,其中AFAICT是共享库的常用目录,应该可以从get get开始工作.

我读到你可以设置LD_LIBRARY_PATH,这对我有用.但是,每次我想运行程序时,我都不希望这样设置.

进一步搜索建议编辑ld.so.conf.当我查看它时,它有以下内容:

include /etc/ld.so.conf.d/*.conf
Run Code Online (Sandbox Code Playgroud)

查看ld.so.conf.d目录显示了一系列文件,包括libc.conf.在这个文件里面是以下内容:

/usr/local/lib
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,当ld.so.conf出现使用包含/ usr/local/lib的libc.conf时,为什么我需要手动设置LD_LIBRARY_PATH?

我在这里缺少必须首先配置的东西吗?在编译时是否有一个我缺少的选项?

我应该注意,为了编译,我必须指定库的路径,我不知道这是我的问题或正常行为的症状.

我还应该注意到,当我在其他系统上部署我的软件时,这是一个值得关注的问题.我本以为我应该能够将.so放在适当的位置并安装我的程序而不会弄乱ld.so.conf.

我希望这是这个问题的正确论坛,我阅读了FAQ,我认为没关系.

干杯.

linux gcc shared-libraries

14
推荐指数
1
解决办法
9968
查看次数

包括带有html和node.js的js文件

我正在通过websot在HTML5客户端和node.js上运行的服务器之间执行消息传递.当然,我选择JSON作为消息格式,因此创建了常见的javascript代码,定义了各种消息内容类型和转换操作.javascript代码在两个项目之间共享.

我创建了我的Web客户端作为一个git项目和我的服务器作为另一个git项目.部分是因为我使用phonegap为各种基于触摸的环境构建基于webkit的客户端.它也是各种逻辑的一个很好的分离.

为了共享公共代码,我为公共逻辑创建了一个单独的项目,并使用git的子项目将代码"导入"到另外两个项目中.

现在这适用于基于html5的项目,因为我可以执行以下操作来包含代码:

<script src="common/js/comms.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

但是对于节点,我在尝试获取代码时遇到了问题.为了获得代码,我最终做了以下事情:

var fs = require('fs');
eval(fs.readFileSync('./common/js/comms.js').toString());
Run Code Online (Sandbox Code Playgroud)

虽然我采取的方法有效,但我注意到当我有依赖时,它开始变得非常混乱(如我需要x.js,y.js和x.js,如果我想要a.js),我必须为希望使用任何这些实体的每个node.js js文件执行此操作.

我也不习惯使用这种eval方法.我没有安全问题,虽然我想使用严格模式,我的理解是eval和严格模式像油和水一样.

所以我的问题是,在html项目和node.js项目之间包含共享js文件的最佳方法是什么?我更喜欢严格遵守的事情.

我应该注意到,尽管围绕这个主题有几个问题,我找不到任何解决我提出的具体问题的问题.我还要补充一点,我不希望"服务"来自'服务器'的文件.HTML5客户端应该是"独立的".


为了澄清,我在'common js files'中的内容如下:

var Comms = function (options) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

在HTML5中我可以只引用via new Comms(),这也是我想在node.js中做的.

javascript html5 eval node.js

7
推荐指数
1
解决办法
3万
查看次数

使用require时节点js和new

我一直在尝试解决node.js中其他js文件的包含问题.

我已经阅读了有关require函数和其他替代方法的所有内容,并决定使用require函数(因为代码只会在node.js上使用,而不是在浏览器中使用).

在我的代码中,我使用原型来创建一个'对象',我后来希望创建一个实例.

为了让它工作,我一直在编写如下代码(让我们称之为vehicle.js):

var util = require('util');
var EventEmitter = require('events').EventEmitter;

module.exports = Vehicle;

util.inherits(Vehicle, EventEmitter);

function Vehicle(options) {
    EventEmitter.call(this);
    options = options || {};
    ...
}

Vehicle.prototype._doStartEvent = function(data) {
    this.emit('start', data);
};

Vehicle.prototype.testRun = function() {
    this._doStartEvent();
};
Run Code Online (Sandbox Code Playgroud)

然后在我的主要js(让我们称之为server.js),我有以下内容:

var test = exports;
exports.Vehicle = require('./vehicle.js');

var remoteVehicle = new test.Vehicle({address: "192.168.1.3"});

remoteVehicle.on('start', function(d) {console.log('started');});

remoteVehicle.testRun();
Run Code Online (Sandbox Code Playgroud)

现在一切正常,但我对正在发生的事情并不了解.

我主要关注的是使用var test = exports;然后exports.Vehicle = require(...).

我尝试过做这样的事情var vehicle = require(...).Vehicle,并var vehicle = require(...) …

javascript require node.js

6
推荐指数
1
解决办法
4741
查看次数

Git 子模块拉覆盖/丢弃任何本地更改

我有一个子模块,我更改了一些本地文件。原始存储库已被修改,我现在希望对子模块进行拉取,但是我收到一条错误消息,说我将丢失我的更改。

如何强制 git 忽略本地更改并进行拉取?

我知道有很多与此类似的问题,但是我在堆栈溢出中找不到可以回答我的特定问题(特别是子模块)的问题。

git git-pull git-submodules

6
推荐指数
1
解决办法
6650
查看次数

crypto.pbkdf2是异步的,我该如何将其视为同步?

我在node.js中使用pbkdf2来进行散列密码.

我的问题是我正在响应身份验证请求,而我正在验证传递的凭据是否正确.我假设pbkdf2是异步的,因为它可能需要花费大量时间(取决于迭代的大小).然而,将剩余的身份验证逻辑移动到一个单独的方法来利用回调似乎有点难看.

有没有比使用定时器或将所有连续的认证逻辑投入单独的函数更好的方法?我知道大多数人会说我应该使用回调,但在我的用例中这没有意义.在将pbkdf2应用于传递的密码之前,我无法继续身份验证.

javascript asynchronous callback pbkdf2 node.js

6
推荐指数
2
解决办法
2717
查看次数

如何在初始化后更改自举轮播的间隔

根据doco,使用以下将设置轮播周期速度:

$('.carousel').carousel({
  interval: 2000
})
Run Code Online (Sandbox Code Playgroud)

但是,如果您已经初始化了轮播,则以不同的间隔调用上述内容无效.

我应该注意,通过JS初始化旋转木马不会设置data-interval旋转木马.我也在这个主题上搜索了很多,但结果都是关于人们试图以固定速度进行设置.我想在初始化后改变速度.

代码如下:

$(function () {
    $('#homeCarousel').carousel({
        interval:2000,
        pause: "false"
    });
    $('#slowButton').click(function () {
        $('#homeCarousel').carousel({interval: 10000});
    });
    $('#fastButton').click(function () {
        $('#homeCarousel').carousel({interval: 1000});
    });
});
Run Code Online (Sandbox Code Playgroud)
#carouselButtons {
    margin-left: 100px;
    position: absolute;
    bottom: 0px;
}

.item {
    color: white;
    background-color: black;
    width:100%;
    height: 350px;
}
Run Code Online (Sandbox Code Playgroud)
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<link href="http://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<!-- Carousel -->
<div id="homeCarousel" class="carousel slide">
  <!-- Menu -->
  <ol class="carousel-indicators">
    <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
    <li data-target="#myCarousel" data-slide-to="1"></li>
    <li …
Run Code Online (Sandbox Code Playgroud)

javascript carousel twitter-bootstrap-3

6
推荐指数
1
解决办法
6272
查看次数