小编Cli*_*ris的帖子

Node.js + Express.js应用程序的错误处理原则?

与其他框架相比,Node.js + Express.js应用程序中的错误报告/处理似乎有所不同.我是否理解它的工作原理如下?

A) 通过接收它们作为回调函数的参数来检测错误.例如:

doSomethingAndRunCallback(function(err) { 
    if(err) { … }
});
Run Code Online (Sandbox Code Playgroud)

B) 通过调用next(err)在MIDDLEWARE中报告错误.例:

handleRequest(req, res, next) {
    // An error occurs…
    next(err);
}
Run Code Online (Sandbox Code Playgroud)

C) 通过抛出错误报告 ROUTES中的错误.例:

app.get('/home', function(req, res) {
    // An error occurs
    throw err;
});
Run Code Online (Sandbox Code Playgroud)

d) 处理通过配置通过app.error自己的错误处理的错误()或使用通用连接错误处理程序.例:

app.error(function(err, req, res, next) {
    console.error(err);
    res.send('Fail Whale, yo.');
});
Run Code Online (Sandbox Code Playgroud)

这四个原则是Node.js + Express.js应用程序中所有错误处理/报告的基础吗?

node.js express

176
推荐指数
2
解决办法
4万
查看次数

iOS 4应用程序在iOS 3.1.3启动时崩溃:未找到符号:__ NSConcreteStackBlock

我正在使用iOS 4.0 SDK运行Xcode 3.2.3.我使用Base SDK = iphoneos4.0,Active SDK = iphoneos4.0,Deployment Target = 3.1.3和Architecture = standard(arm6 arm7)构建了我的应用程序.编译器= GCC 4.2.据我了解,这是为iOS 4和3 构建应用程序的正确方法.

该应用程序在运行iOS 4的设备上运行良好.但是当您尝试在具有iOS 3.1.3(iPod Touch 1G)的设备上运行它时,它会在启动时崩溃:

dyld: Symbol not found: __NSConcreteStackBlock
  Referenced from: /var/mobile/Applications/192B30ED-16AC-431E-B0E9-67C1F41FD5DA/MyApp.app/MyApp
  Expected in: /usr/lib/libSystem.B.dylib
Run Code Online (Sandbox Code Playgroud)

在我的main()函数被调用之前,它似乎是一个相当"低级"动态链接库的问题.我甚至尝试重新启动设备等,没有运气.这是崩溃日志的一部分:

Process:         MyApp [60]
Path:            /var/mobile/Applications/192B30ED-16AC-431E-B0E9-67C1F41FD5DA/MyApp.app/MyApp
Identifier:      MyApp
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2010-07-22 17:16:17.942 -0400
OS Version:      iPhone OS 3.1.3 (7E18)
Report Version:  104

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x00000001, 0xe7ffdefe
Crashed Thread:  0 …
Run Code Online (Sandbox Code Playgroud)

iphone ios4 ios

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

ExtJS 4.x:如何禁用Ext.grid.Panel单元格中的"脏记录"红角?

我有一个带有商店的Ext.grid.Panel(aka gridpanel),仅用于客户端视觉效果(即,没有任何内容保存到服务器).当我创建新的模型实例并将它们添加到商店时,它们会在网格中显示一个红色的角(可能表示存储更改尚未保存).

目前,我在每个记录/模型上调用.commit()方法,然后将其添加到商店,以防止网格中的脏记录红色角落.

是否有更简单的方法来简单地配置网格面板,以便不显示有关记录"脏"状态的任何可视指示器?

注意:这个类似问题的解决方案要么涉及CSS,要么仅适用于ExtJS 3.我希望找到一个适用于ExtJS 4的程序化"设置".

extjs4

34
推荐指数
2
解决办法
3万
查看次数

RequireJS:如何在构建单个文件时排除某些路径?

我有一个使用RequireJS 2.1.8的Backbone应用程序(即我的所有Backbone视图都使用define()来指定它们的依赖关系).一切都很好,现在我正在尝试使用r.js(通过NPM安装)将我的所有JavaScript连接/缩小为单个文件.

如何设置r.js配置,该配置排除以某些路径开头的依赖项?

我在下面包含了我的main.js文件.在这种情况下,我希望"构建"输出文件排除第三方库(即jquery,骨干等).此外,我想排除任何以"webapp /"开头的依赖项(例如,"webapp/dynamic_cfg",这会导致请求被发送到我的Djang应用程序以获取动态生成的JavaScript文件/模块).

文件夹结构:

|--static/
    |--main.js
    |--myapp/
        |--views/
            |-- MyView.js
            |-- ...
    |--lib
        |--backbone-1.0/
        |--underscore-1.5.1/
        |-- ...
Run Code Online (Sandbox Code Playgroud)

index.html(一个Django模板):

<script src="{% static 'lib/requirejs-2.1.8/require.min.js' %}" data-main="{% static 'main.js' %}" ></script>
Run Code Online (Sandbox Code Playgroud)

main.js:

requirejs.config({

    paths: {
        "jquery": 'lib/jquery-1.10.2/jquery.min',
        "text_loader": 'lib/requirejs-text-2.0.10/requirejs-text',
        "fuelux": 'lib/fuelux-2.3.1',
        "backbone": 'lib/backbone-1.0/backbone.min',
        "underscore": 'lib/underscore-1.5.1/underscore.min',

        // Any module that requires 'webapp/*' will result Require.js
        // making a request to the server webapp.
        "webapp": '..'
    },

    shim: {

        'backbone': {
            deps: ['underscore', 'jquery'], // Load these dependencies first
            exports: 'Backbone' // Create …
Run Code Online (Sandbox Code Playgroud)

javascript requirejs

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

ExtJS 3:创建自定义类的两种方法:有什么区别?

我正在尝试学习ExtJS和面向对象的JavaScript.我已经看到人们通过几种方式在自定义命名空间中定义类.这两种方法有什么区别?

方法1

Ext.ns('myapp.cars');
(function(){
    var Car = Ext.extend(Object, {
       //...
    })

    myapp.cars.Car = Car;
})()
Run Code Online (Sandbox Code Playgroud)

方法2

Ext.ns('myapp.cars');
myapp.cars.Car = Ext.extend(Object, {
       //...
});
Run Code Online (Sandbox Code Playgroud)

方法2更易于阅读,所需代码更少; 有什么理由方法1更好吗?谢谢!

javascript extjs extjs3

12
推荐指数
2
解决办法
9077
查看次数

Node.js约定通过回调返回多个错误?

因此,Node.js中回调函数的一般约定是"保留"错误的第一个参数(如果存在).例如:

callSomeBlockingFcn( function callbackWhenDone(err, result) {
  if( err ) ...
});
Run Code Online (Sandbox Code Playgroud)

如果您需要返回多个错误 - 例如多个数据验证错误 - 是否认为传递错误对象数组的形式不佳?例:

var callSomeBlockingFcn = function(callback) {
  // multiple errors to report back...
  callback( [ err1, err2, ...] );
}
Run Code Online (Sandbox Code Playgroud)

或者最好避免使用数组并使用引用数组的属性返回单个对象(如果需要)?例:

var callSomeBlockingFcn = function(callback) {
  // multiple errors to report back...
  callback( { errors: [ err1, err2, ...] } );
}
Run Code Online (Sandbox Code Playgroud)

javascript error-handling node.js

12
推荐指数
1
解决办法
2408
查看次数

ExtJS 4:如何知道表单中的任何字段(Ext.form.Panel)何时发生变化?

我想要一个单独的事件监听器,只要表单中的任何字段(即Ext.form.Panel)发生变化就会触发.但是,Ext.form.Panel类不会为此本身触发事件.

在表单中监听所有字段的"更改"事件的最佳方法是什么?

extjs extjs4

11
推荐指数
2
解决办法
3万
查看次数

react-router:为什么browserHistory优先于hashHistory?

我对React比较陌生; 如果这是一个非常天真的问题,请道歉.

有什么技术优势browserHistory使它更适合hashHistory?例如,使用History API是否会提高性能/效率?

虽然这是以额外的服务器配置为代价并且需要通过basename对不同服务器的基本URL进行硬编码或配置,但是文档声明browserHistory推荐的.

hashHistory但是,"只是工作",无论提供文件的基本URL如何.无需服务器配置.捆绑您的应用程序,从服务器上的任何URL /路径托管它,很好.

如果文档进一步解释为什么browserHistory推荐它,即使它涉及更多的复杂性,这可能是好的.

react-router

10
推荐指数
2
解决办法
5680
查看次数

为什么iPhone应用程序的main()函数没有机会完成?

考虑以下main()方法,您可以找到大多数iPhone应用程序:

int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}
Run Code Online (Sandbox Code Playgroud)

在我使用这些模拟器运行的每个iPhone应用程序中(包括Apple提供的几个示例项目),线程永不退出UIApplicationMain(),任何剩余的代码main()永远不会被执行.这是预期的行为吗?

我已经UIApplicationMain()通过使用调试器逐步执行代码来验证从未运行过的语句.当用户停止应用程序时(例如,通过点击"主页"按钮),生成的堆栈跟踪显示 [UIApplication _terminateWithStatus:]最终被调用.此函数调用应用程序委托的applicationWillTerminate:方法.一旦完成,[UIApplication _terminateWithStatus:]似乎杀死/退出线程.

有人可以确认这是main()应该如何工作,或者至少在他们的机器上确认相同的行为?

iphone objective-c

9
推荐指数
1
解决办法
7632
查看次数

ExtJS:下拉菜单对齐不正确

我有一个带有菜单和自定义menuAlign设置的分割按钮(这样下拉菜单的右上角将与splitbutton的右下角对齐).

问题:第一次单击拆分按钮时,菜单未正确对齐.然而,后续点击工作正常.在Chrome和FF中看到相同的行为,ExtJS 4.0.2a.

有任何想法吗?谢谢!

在此输入图像描述

在此输入图像描述

{
    xtype: 'toolbar',
    items: [
        {
            xtype: 'triggerfield',
            width: 335,
            emptyText: 'Search',
            triggerCls: 'x-form-search-trigger'
        },
        '->',
        {
            xtype: 'splitbutton',
            text: 'Account',
            menuAlign: 'tr-br',
            menu: {
                xtype: 'menu',
                plain: true,
                items: [
                    {
                        xtype: 'container',
                        html: 'image here...'
                    },
                    {
                        xtype: 'button',
                        width: 10,
                        text: 'Log Out'
                    }
                ]
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

extjs extjs4

8
推荐指数
1
解决办法
5956
查看次数