我正在嘗試使用node.js學習TDD。我已經遇到了這個問題,其中expresso
命令掛起,我認爲是因爲redis服務器。用ctrl+C
殺死進程最終會提供我正在尋找的輸出(100%3測試通過)。用expresso - redis會話存儲測試node.js
什麼原因導致expresso
命令掛起,我能做些什麼?
我的應用程序是這樣的:
// Module dependencies.
var auth = require('connect-auth'),
RedisStore = require('connect-redis');
var express = require('express');
var app = module.exports = express.createServer();
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session({ store: new RedisStore, secret: "secret goes here" }));
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
// Routes
app.get('/', function(req, res){
res.render('index', {
title: 'Orchestrate'
});
});
app.get('/login', function(req, res){
res.render('user/login', {
title: 'Login'
});
});
app.get('/register', function(req, res){
res.render('user/login', {
title: 'Register'
});
});
// Only listen on $ node app.js
if (!module.parent) {
app.listen(3000);
console.log("Express server listening on port %d", app.address().port);
}
而且我的測試:
// Run $ expresso
/**
* Module dependencies.
*/
var app = require('../app'),
assert = require('assert');
module.exports = {
'GET /': function(){
assert.response(app,
{ url: '/' },
{ status: 200, headers: { 'Content-Type': 'text/html; charset=utf-8' }},
function(res){
assert.includes(res.body, '<title>Orchestrate</title>');
});
},
'GET /login': function(){
assert.response(app,
{ url: '/login' },
{ status: 200, headers: { 'Content-Type': 'text/html; charset=utf-8' }},
function(res){
assert.includes(res.body, '<title>Login</title>');
});
},
'GET /register': function(){
assert.response(app,
{ url: '/register' },
{ status: 200, headers: { 'Content-Type': 'text/html; charset=utf-8' }},
function(res){
assert.includes(res.body, '<title>Register</title>');
});
}
};
done()函數來自哪裏?它有什麼作用? – clyfe 2011-07-16 07:39:00
哦,算出來,它是參數。 – clyfe 2011-07-16 08:50:55
在expresso文檔中,它是'beforeExit',並且執行其他操作... – clyfe 2011-07-16 08:56:52