一.热更新
nodemon是一个热更新中间件,作用可以自动监听项目文件的改动,代码被修改而且保存了以后,nodemon会自动帮我们重启项目,节约开发调试的时间
1.全局安装nodemon,全局安装模式将包安装到node.js的安装目录下。
全局安装只需要安装一次,以后所有的项目中就都可以调用nodemon程序了
npm i nodemon -g
2.nodemon的配置
项目的根目录下新建一个nodemon.json的文件
{
"restartable": "rs",
"ignore": [".git", ".svn", "node_modules /**/ node_modules"],
"verbose": true,
"execMap": {"js": "node --harmony"},
"watch": [],
"env": {"NODE_ENV": "development"
},
"ext": "js json"
}
3.使用热更新启动项目
nodemon app
部分系统会因为权限系统报错:是因为PowerShell执行策略的问题。
解决方案:
1).以管理员的身份运行vscode
2).执行get-ExecutionPolicy,显示Restricted,表示状态是禁止的
3)执行:set-ExecutionPolicy Remotesigned;
4).这时候在执行get-ExecutionPolicy,就会显示Remotesigned。就可以了
二.Next向下匹配
默认情况下,路由的匹配是从上向下进行的,一但有一个匹配上就不会向下匹配了。如果想向下继续匹配,需要增加一个next的形参,然后再函数的内部的最后添加next();
一般使用在中间件中。
router.get('/hello',(req,res,next)=>{ //send()相当于封装了setHeader()和end(),每次响应都会设置MIME。而浏览器不接受重复设置MIME,因此当用户的一次请求有多个响应的,会提示“can not set header after send to client ” res.send('第一次匹配'); console.log('第一次匹配'); next();//继续向下匹配 }) router.get('/hello',(req,res)=>{ res.send('第二次匹配') })
下面为报错信息
只设置一次的send的时候,就可以接着匹配了