【发布时间】:2015-06-11 16:04:43
【问题描述】:
我已经搜索了所有内容,但似乎找不到答案。我希望能够让服务器在端口 4443 上运行,但同时运行“gulp test”并打开一个新端口,比如在 8888 上,运行测试然后关闭该端口。现在,当我运行“gulp test”并且服务器已经在端口 4443 上运行时,我得到一个Error: listen EADDRINUSE。
如何让它在新端口而不是 4443 上启动 gulp?
这是我的 gulp 文件
'use strict';
var gulp = require('gulp');
var jshint = require('gulp-jshint');
var jscs = require('gulp-jscs');
var stylish = require('gulp-jscs-stylish');
var livereload = require('gulp-livereload');
var mocha = require('gulp-mocha');
var gutil = require('gulp-util');
var noop = function () {};
// run 'gulp lint' in the console to run jshint and jscs on every .js file under the server folder
// and all its sub folders
gulp.task("lint", function(){
gulp.src("./server/**/*.js")
.pipe(jshint())
.pipe(jscs())
.on('error', noop)
.pipe(stylish.combineWithHintResults())
.pipe(jshint.reporter("jshint-stylish"));
});
// run 'gulp test' to run test suite
gulp.task('test', function(){
return gulp.src(['./server/assets/tests/specs/*.js'], {read: false})
.pipe(mocha({reporter: 'nyan'}))
.on('error', gutil.log)
.once('end', function(){
process.exit();
});
});
// run 'gulp watch' to watch all .js files and have livereload listen for changes
gulp.task('watch', function(){
livereload.listen();
gulp.watch('./server/**/*.js');
});
这里是 app.js
/**
* Node Server Configuration
*/
'use strict';
// Module dependencies.
var fs = require('fs');
var https = require('https');
var http = require('http');
var express = require('express');
var db = require('./server/api/models/db.js');
// Add coloring for console output
require('colors');
// self signed cert credentials
var credentials = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem'),
passphrase: 'testing'
};
// Create Express server.
var app = express();
// ignoring the self signed certs in dev environment
if(app.get('env') === 'development') {
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
}
// Express configuration
require('./server/config/express')(app, express);
// Start Express server.
https.createServer(credentials, app)
.listen(app.get('securePort'), function() {
console.log('✔ Express server listening on port '.green + '%d'.blue + ' in '.green + '%s'.blue + ' mode'.green, app.get('securePort'), app.get('env'));
});
// Set up HTTP redirect
var httpApp = express();
var httpRouter = express.Router();
httpApp.use('*', httpRouter);
httpRouter.get('*', function(req, res){
var host = req.get('Host');
host = host.replace(/:\d+$/, ":" + app.get('securePort'));
var destination = ['https://', host, req.url].join('');
return res.redirect(destination);
});
var httpServer = http.createServer(httpApp);
httpServer.listen(app.get('port'));
module.exports = app;
【问题讨论】:
标签: node.js express gulp mocha.js