я получаю сообщение об ошибке, когда я пытаюсь запустить демонстрацию Microsoft 2-й раз на Ubuntu 18.04 - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь запустить демонстрацию Microsoft под названием 02.echo-bot. Чтобы запустить его, я открываю командную строку с правильным каталогом и набираю npm start. Все запускается нормально, и я могу запустить бота в их эмуляторе. Теперь я хочу попробовать другую демонстрацию под названием 03.welcome-users (например), поэтому я убиваю echo-bot, нажимая ctrl-z в командной строке. Я перехожу на правильный каталог и набираю npm start. Теперь я получаю сообщение об ошибке: richb201 @ richb201-XPS-13-9370: ~ / botbuilder-samples / samples / javascript_nodejs / 02.echo-bot $ npm start

> echobot@1.0.0 start /home/richb201/botbuilder- 
samples/samples/javascript_nodejs/02.echo-bot
> node ./index.js

events.js:183
  throw er; // Unhandled 'error' event
  ^

Error: listen EADDRINUSE :::3978
at Server.setupListenHandle [as _listen2] (net.js:1360:14)
at listenInCluster (net.js:1401:12)
at Server.listen (net.js:1485:7)
at Server.listen (/home/richb201/botbuilder- 
samples/samples/javascript_nodejs/02.echo- 
bot/node_modules/restify/lib/server.js:306:31)
at Object.<anonymous> (/home/richb201/botbuilder- 
samples/samples/javascript_nodejs/02.echo-bot/index.js:21:8)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! echobot@1.0.0 start: `node ./index.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the echobot@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely 
additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/richb201/.npm/_logs/2019-06-27T18_21_17_969Z- 
debug.log

Я должен перезагрузить свой ноутбук. В приведенном выше примере я снова попытался запустить echo-bot. Кажется, что нажатие ctrl-z не закрывает порт 3978, поэтому, когда я пытаюсь использовать его снова, он уже открыт, пока я не перезагружусь.

Мне кажется, проблема в том, что порт не был закрыт должным образом? Я понятия не имею, как закрыть его или есть ли какой-либо способ командной строки закрыть определенный порт в Linux? Или правильный способ закрыть работающий бот на моей локальной машине?

Это из index.js:

// Create HTTP server
const server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, () => 
{
console.log(`\n${ server.name } listening to ${ server.url }`);
console.log(`\nGet Bot Framework Emulator: 
https://aka.ms/botframework-emulator`);
console.log(`\nTo talk to your bot, open the emulator select "Open 
Bot"`);
});

Обратите внимание на порт #!

...