工作内容buildserver运行准备工作createdirectorystructure|-client|-server|--bin//可执行文件目录|--app.js初始化项目切换到server目录cdserverinitializationprojectnpminit-y//-y初始化npm,默认值为i-Skoa//安装项目依赖koa搭建server,编写app.jsconstkoa=require('koa');constapp=newkoa();app.use((ctx,next)=>{ctx.body='testtesttest';next();})app.listen(3000,'localhost',()=>{console.log('服务器正在运行!')})app.on('error',err=>{log.error('服务器错误',err)});运行server方式一:直接cli在项目路径server下,打开命令行,运行nodeapp.js方式二:scripts在server/package.json文件的scripts中写入"start":"nodeapp.js",然后在项目路径下打开命令行servernpmstart方法三:编辑器vscode鼠标聚焦server/app.js文件,f5选择Node.js运行环境(一定要聚焦可执行文件)方法四:vscode创建一个launch.json文件直接通过右下角“添加配置-->Node.js启动程序”添加新的配置内容,更改program":"${workspaceFolder}/app.js"为program":"${workspaceFolder}/server/app.js"就可以开始调试运行了。使用vscode运行可执行文件即调试运行。可以在页面被请求的时候在vscode中断点调试。优化代码,将服务端的监控移至可执行目录./bin,app.js只是服务端的配置,将端口/域名放入配置目录注意:需要修改路径运行服务器的可执行文件(这里不贴这里来方法,下面监控变化的时候会有)//server/app.jsconstkoa=require('koa');constapp=newkoa();app.use((ctx,next)=>{ctx.body='TestTestTest';next();})app.on('error',err=>{log.error('servererror',err)});module.exports=app;//server/bin/index.jsconstapp=require('../app');constServer=require('../config/server');const{主机,端口}=服务器;app.listen(port,host,()=>{console.log(`serverisrunningathttp://${host}:${port}`);})//newserver/config/server.jsmodule.exports={port:3000,host:'localhost'}如果你修改app.use((ctx,next)=>{ctx.body='testtesttest1111'inserver/app.js;//initialvaluectx.body='testTestTest';next();})刷新浏览器http://localhost:3000/,发现输出没有变化。您需要重新启动服务器以获得新的输出。那么如何监听变化,刷新页面后,不重启服务就可以得到新的输出呢?准备npmi-Dnodemon安装nodemon包更改运行方式将node运行改为nodemon运行可执行文件server/bin/index.js。对应以上操作变化:方法一:cli直接在项目路径server下,打开命令行,运行$(npmbin)/nodemonapp.js方法二:在server的scripts中脚本写“start”/package.json文件:“nodemonapp.js”,然后在项目路径server下,打开命令行npmstart方法三:编辑器vscode鼠标聚焦server/bin/index.js文件,f5选中Node.js运行环境(一定要关注Executable文件)方法四:用vscode创建一个launch.json文件{//使用IntelliSense了解相关属性。//悬停以查看现有属性的描述。//有关更多信息,请访问:https://go.microsoft.com/fwlink/?linkid=830387"version":"0.2.0","configurations":[{"type":"node","request":"launch","name":"LaunchProgram","program":"${workspaceFolder}/server/bin/index.js","skipFiles":["
