2011-12-13 3 views
2

내가 nodejs에서 다음과 같은 기능을 가지고, res.execSync 여러 매개 변수를 취합니다 https://github.com/xdenser/node-firebird-libfbclient함수에 인수를 전달하는 방법은 무엇입니까? 여기에 설명 된대로

function execSync(param1, param2, ..., paramN);
param1, param2, ..., paramN - parameters of prepared statement in the same order as in SQL and with appropriate types.

function test(sql, callback) 
{ 
    var args = Array.prototype.slice.call(arguments).splice(2); 
    res.execSync(args); 
} 

test('test', function() {}, "param1", "param2", "param3"); 

오류 : 기대 문자열을 인수 # 1로.

어떻게 해결할 수 있습니까?

답변

1

는 말은하지 마십시오 :

function test(sql, callback) 
{ 
    var args = Array.prototype.slice.call(arguments, 2); 
    res.execSync.apply(res, args); 
} 

test('test', function() {}, "param1", "param2", "param3"); 
이 귀하의 첫 번째 라인을 작성하는 짧은 방법이 있다는 것을 의미
1

args은 배열입니다. 별도의 인수로 압축을 풀려면 apply 메서드를 사용해야합니다.

res.execSync.apply(res, args); 

그냥 call처럼 작동하지만 일반적인 인수 목록의 intead 배열을 수신하는 단계를 포함한다.


현재, 범위 인수를 slice에 전달할 수 있습니다.

var args = Array.prototype.slice.call(arguments, 2); 
관련 문제