1
내 모듈 용 테스트 스크립트를 작성 중이며 요청이 완료되면 서버를 닫을 수 있어야합니다. 다음 코드는 작동하지만 app.close()가 express 3에서 삭제되었음을 알 수 있습니다. 지금은 가장 좋은 방법은 무엇입니까?요청이 완료되면 nodejs가 서버를 닫습니다.
var testCase = require('nodeunit').testCase;
var request = require('request');
var express = require('express');
var app = express.createServer();
var srv = app.listen();
....
request({
method: 'POST',
json: true,
body: { id: 'second request'},
url: 'http://' + target
}, function(err, res, body) {
console.info("closing server");
app.close();
test.done();
});
});
감사합니다, 리
추신 test.done()은 서버를 닫은 후에 호출해야합니다. 그렇지 않으면 테스트가 실패합니다.
내가 명시 2.5이 실행하도록 시도하고 나에게 다음과 같은 오류 제공 :
app.listen()
에 대한 the documentation에 따르면: 당신은 일반적으로이 코드는 다음과 같이 기록을 참조 할 수있다 ('의 addListener 새로운 오류가 발생을 함수의 인스턴스 만 취함 '); 내 생각에 "응용 프로그램"은 Express 2.5의 Function 인스턴스가 아닙니다 ... 코드를 조작하여 어떻게 작동 할 수 있는지 생각해보십시오. (익스프레스 2.5 이상 버전에서 코드를 실행하고 싶습니다.) – user429400
두 개의 다른 인터페이스가 있으므로 두 가지 버전의 코드를 작성해야합니다. 당신이'typeof app'을 점검하여 그것이 기능인지 아닌지를 확인할 수 있다고 가정합니다. –
그래서 함수라면 새로운 코드를 사용해야하고 그렇지 않다면 app.close()를 사용하여 이전 코드를 사용해야합니까? – user429400