|-client
|-server
|--bin // 可執行文件目錄
|--app.jscss
cd server
npm init -y
// -y
以默認值初始化npm i -S koa
//安裝項目依賴koaconst koa = require('koa'); const app = new koa(); app.use((ctx, next) => { ctx.body = '測試測試測試'; next(); }) app.listen(3000, 'localhost', () => { console.log('Server is running!') }) app.on('error', err => { log.error('server error', err) });
方式一:cli
node
server
下,開啓命令行,運行node app.js
方式二:scripts
npm
server/package.json
文件的scripts
編寫"start": "node app.js"
,而後在項目路徑server
下,開啓命令行npm start
方式三:編輯器vs codejson
server/app.js
文件內,f5
選擇Node.js
運行環境(必須聚焦在可執行文件中)方式四:vs code建立launch.json文件瀏覽器
program": "${workspaceFolder}/app.js",
改成program": "${workspaceFolder}/server/app.js"便可使用vs code運行可執行文件是調試運行,能夠在vs code中打斷點,頁面請求時,進行調試。
app
./bin
,app.js
只是服務端的配置// server/app.js const koa = require('koa'); const app = new koa(); app.use((ctx, next) => { ctx.body = '測試測試測試'; next(); }) app.on('error', err => { log.error('server error', err) }); module.exports = app;
// server/bin/index.js const app = require('../app'); const Server = require('../config/server'); const {host, port} = Server; app.listen(port, host, () => { console.log(`server is running at http://${host}:${port}`); })
// 新建server/config/server.js module.exports = { port: 3000, host: 'localhost' }
若是修改了server/app.js
中koa
app.use((ctx, next) => { ctx.body = '測試測試測試1111'; // 初始值爲ctx.body = '測試測試測試'; next(); })
刷新瀏覽器http://localhost:3000/
發現輸出並無改變,須要從新啓動服務端,才能獲得新的輸出。編輯器
那如何實現監聽變化,刷新頁面後,不須要重啓服務就能獲得新的輸出呢?測試
npm i -D nodemon
安裝nodemon
包優化
將node
運行改爲nodemon
運行可執行文件server/bin/index.js
。
對應上方的運行改變:
方式一:cli
server
下,開啓命令行,運行$(npm bin)/nodemon app.js
方式二:scripts
server/package.json
文件的scripts
編寫"start": "nodemon app.js"
,而後在項目路徑server
下,開啓命令行npm start
方式三:編輯器vs code
server/bin/index.js
文件內,f5
選擇Node.js
運行環境(必須聚焦在可執行文件中){ // 使用 IntelliSense 瞭解相關屬性。 // 懸停以查看現有屬性的描述。 // 欲瞭解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", "program": "${workspaceFolder}/server/bin/index.js", "skipFiles": [ "<node_internals>/**" ] }, { "type": "node", "request": "launch", "name": "nodemon", "runtimeExecutable": "${workspaceFolder}/server/node_modules/.bin/nodemon", "program": "${workspaceFolder}/server/bin/index.js", "restart": true, "console": "integratedTerminal", "internalConsoleOptions": "neverOpen", "skipFiles": [ "<node_internals>/**" ] } ] }
接下來都是以launch.json
運行服務。