В процессе разработки может потребоваться необходимость внести изменения в уже запущенный проект. Допустим, у нас приложение представлено файлом app.js, где определен следующий код:
const http = require("http"); let message = "Hello World!"; http.createServer(function(request,response){ console.log(message); response.end(message); }).listen(3000, "127.0.0.1",()=>{ console.log("Сервер начал прослушивание запросов"); });
Запустим сервер с помощью команды node app.js
, и при обращении пользователя по адресу http://localhost:3000/ браузер пользователя отобразит строку "Hello World!". Одновременно строка выводится на консоль.
c:\app> node app.js Сервер начал прием запросов по адресу http://localhost:3000 Hello World! Hello World!
При этом сервер продолжает быть запущенным. И если мы изменим переменную message в файле app.js, то это никак не повлияет на работу сервера, и он будет продолжать отдавать клиенту строку "Hello World!".
В этом случае необходимо перезапустить сервер. Однако это не очень удобно, особенно когда необходимо часто делать различные изменения, тестировать выполнение. И в этом случае нам может помочь специальный инструмент nodemon. Для его использования определим в папке проекта следующий файл package.json:
{ "name": "helloapp", "version": "1.0.0", "scripts": { "start": "nodemon app.js" }, "dependencies": { "nodemon": "^3.0.1" } }
В секции scripts определена команда "start", которая в реальности будет запускать команду "nodemon app.js" и запускать файл через nodemon.
В секции dependencies
указан пакет nodemon для установки.
Вначале перейдем в консоли к папке проекта и установим сам nodemon в проект с помощью команды npm install:
c:\app> npm install added 34 packages, and audited 35 packages in 3s 3 packages are looking for funding run `npm fund` for details found 0 vulnerabilities c:\app>
Затем запустим приложение с помощью команды npm start, которую мы определили выше в package.json:
c:\app> npm start > helloapp@1.0.0 start > nodemon app.js [nodemon] 3.0.1 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nodemon] watching extensions: js,mjs,cjs,json [nodemon] starting `node app.js` Сервер начал прием запросов по адресу http://localhost:3000
Итак, наше приложение запущено, мы можем обращаться к нему в барузере. И если вдруг после запуска сервера мы изменим его код, например, поменяем переменную message с "Hello World!" на "Goodbye World!", то сервер автоматически будет перезапущен:
c:\app> npm start > helloapp@1.0.0 start > nodemon app.js [nodemon] 3.0.1 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nodemon] watching extensions: js,mjs,cjs,json [nodemon] starting `node app.js` Сервер начал прием запросов по адресу http://localhost:3000 Hello World! Hello World! [nodemon] restarting due to changes... [nodemon] starting `node app.js` Сервер начал прием запросов по адресу http://localhost:3000 Goodbye World! Goodbye World!