Node.js - obtiens le message “Erreur: connexion ECONNREFUSED” lors de l'essai express app avec moka
Tout d'abord, je ne suis pas à l'écoute sur le port 80 ou 8080. Je suis à l'écoute sur le port 1337.
J'ai créé un simple serveur HTTP à l'aide de l'express. Voici la app.js script pour démarrer le serveur.
require('./lib/server').listen(1337)
Le serveur script est situé dans lib/server.js
fichier, puisque le même script sera aussi utilisé dans le script de test.
var http = require('http')
, express = require('express')
, app = express()
app.get('/john', function(req, res){
res.send('Hello John!')
})
app.get('/sam', function(req, res){
res.send('Hello Sam!')
})
module.exports = http.createServer(app)
Et, enfin, le test/test.js
:
var server = require('../lib/server')
, http = require('http')
, assert = require('assert')
describe('Hello world', function(){
before(function(done){
server.listen(1337).on('listening', done)
})
after(function(){
server.close()
})
it('Status code of /john should be 200', function(done){
http.get('/john', function(res){
assert(200, res.statusCode)
done()
})
})
it('Status code of /sam should be 200', function(done){
http.get('/sam', function(res){
assert(200, res.statusCode)
done()
})
})
it('/xxx should not exists', function(done){
http.get('/xxx', function(res){
assert(404, res.statusCode)
done()
})
})
})
Mais je reçois un 3/3 erreurs:
Hello world
1) Status code of /john should be 200
2) Status code of /sam should be 200
3) /xxx should not exists
✖ 3 of 3 tests failed:
1) Hello world Status code of /john should be 200:
Error: connect ECONNREFUSED
at errnoException (net.js:770:11)
at Object.afterConnect [as oncomplete] (net.js:761:19)
2) Hello world Status code of /sam should be 200:
Error: connect ECONNREFUSED
at errnoException (net.js:770:11)
at Object.afterConnect [as oncomplete] (net.js:761:19)
3) Hello world /xxx should not exists:
Error: connect ECONNREFUSED
at errnoException (net.js:770:11)
at Object.afterConnect [as oncomplete] (net.js:761:19)
Je ne comprends vraiment pas pourquoi cela, depuis mon script de test semble logique. J'ai couru le serveur node app.js
et testés manuellement, localhost:1337/john
et localhost:1337/sam
et il fonctionne très bien!
De l'aide? Merci.
Avez-vous essayé de changer le numéro de port?
Le problème reste le même, quel que soit le port (modifié de façon aléatoire à plusieurs reprises).
Avez-vous essayé
Grâce Amberlamps, en donnant le chemin complet fonctionne bien pour tous les tests. Pouvez-vous l'ajouter comme une réponse afin de valider et fermer la question?
Le problème reste le même, quel que soit le port (modifié de façon aléatoire à plusieurs reprises).
Avez-vous essayé
http://localhost:1337/john
dans votre http.get()
?Grâce Amberlamps, en donnant le chemin complet fonctionne bien pour tous les tests. Pouvez-vous l'ajouter comme une réponse afin de valider et fermer la question?
OriginalL'auteur htaidirt | 2013-03-07
Vous devez vous connecter pour publier un commentaire.
Pour
http.get()
de travail, vous devez attribuer le chemin complet d'accès à la ressource comme premier argument:OriginalL'auteur Amberlamps
Devrait fonctionner. http.obtenir suppose le port 80 si rien d'autre n'est spécifié.
80
.OriginalL'auteur Andreas Hultgren