to co mam zrobić:
mam server.js plik w katalogu głównym mojego projektu węzła, który konfiguruje aplikację węzła Serwer lication (z Express) i eksportuje 2 metody:
exports.start = function(config, readyCallback) {
if(!this.server) {
this.server = app.listen(config.port, function() {
console.log('Server running on port %d in %s mode', config.port, app.settings.env);
// callback to call when the server is ready
if(readyCallback) {
readyCallback();
}
});
}
};
exports.close = function() {
this.server.close();
};
The app.js plik będzie prosta w tym momencie:
var server = require('./server');
server.start({ port: 8000 });
Więc plików/folderów podstawowa struktura byłyby następujące :
src
app.js
server.js
Mając to oddzielenie będzie pozwalają uruchomić serwer normalnie:
node src/app.js
.. i/lub wymagają go ze skryptu niestandardowego węzła, który mógłby być scenariusz węzeł (lub jake/grunt/cokolwiek zadanie), który wykonuje swoje testy tak:
/** my-test-task.js */
// util that spawns a child process
var spawn = require('child_process').spawn;
// reference to our node application server
var server = require('./path/to/server.js');
// starts the server
server.start({ port: 8000 }, function() {
// on server ready launch the jasmine-node process with your test file
var jasmineNode = spawn('jasmine-node', [ '.path/to/test/file.js' ]);
// logs process stdout/stderr to the console
function logToConsole(data) {
console.log(String(data));
}
jasmineNode.stdout.on('data', logToConsole);
jasmineNode.stderr.on('data', logToConsole);
jasmineNode.on('exit', function(exitCode) {
// when jasmine-node is done, shuts down the application server
server.close();
}
});
Jaką wersję ekspresu używasz? – srquinn
Używam wersji 3.x (3.0.2 teraz). – optikfluffel