J'écris un script de test pour mon module et je dois pouvoir fermer mon serveur lorsque ma requête est terminée. Le code suivant fonctionne mais je peux voir que app.close() a été supprimé d'express 3. Quelle est la meilleure façon de le faire maintenant?nodejs exprime un serveur fermé lorsque la requête est terminée
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();
});
});
Merci, Li
P.S. test.done() doit être appelé après la fermeture du serveur, sinon le test échouera.
J'ai essayé de courir ce avec express 2.5 et il me donne l'erreur suivante: throw new Error ('addListener prend seulement des instances de Fonction '); Je suppose que "app" n'est pas une instance d'une fonction en express 2.5 ... Une idée de comment manipuler le code pour que ça marche? (Je veux que le code s'exécute sur les versions 2.5 et supérieures express) – user429400
Ils ont deux interfaces différentes, vous aurez donc besoin d'écrire deux versions du code. Je suppose que vous pouvez vérifier 'typeof app' pour voir si c'est une fonction ou non. –
donc si c'est une fonction, je devrais utiliser le nouveau code, et sinon je devrais utiliser l'ancien code avec le app.close()? – user429400