在执行剩下的testing时保持nodeJs服务器运行

im新nodeJS和webdriveIO编写一些webdriveIOtesting我有两个函数:smsServer(); 和startTest();

1- smsServer();

function smsServer(){ // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json()) app.get('/',function(req,res){ console.log(req.query.text); }); app.post('/', function(req,res){ console.log("Post"); console.log(req.body); res.sendStatus(200); }); app.listen(3000, function(req, res){ console.log('App listening on localhost:3000'); console.log("req: ",req); console.log("res: ",res); }); } 

2- startTest(); just some Test WDIO

我想保持我的服务器运行接收一些validation码,而第二个function(testing)执行任何帮助将升值之前,我的老板杀了我

       

网上收集的解决方案 "在执行剩下的testing时保持nodeJs服务器运行"

午餐你的应用程序没有杀死一个进程或永远使用。 但是,我想当你午餐你的应用程序服务器必须仍然运行,

 npm install forever 

之后

 forever start yourapp 

我发现了一个解决scheme,通过使用事件发射器为我工作,所以我的服务器代码将是:

 'use strict'; const express = require('express'); const bodyParser = require('body-parser'); const app = express(); // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json()) app.get('/',function(req,res){ console.log('received sms %s', req.query.text); process.emit('sms', req.query.text); res.send(200); }); app.post('/', function(req,res){ console.log('received sms %s', req.query.text); process.emit('sms', req.query.text); res.send(200); }); module.exports = app; 

所以应用程序的其余部分将是

 // decribe('some description', function(){ // some test code ... return when.promise((resolve, reject)=>{ process.on('sms', (sms)=>{ // some work here resolve(); }); // some other code }); });