丁鹿学堂前端培训:node自动化启动和模块化路由

发布于:2023-01-04 ⋅ 阅读:(328) ⋅ 点赞:(0)
使用nodemon监测文件变化,自动重启node
 npm install nodemon cross-env --save-dev
使用cross-env设置环境变量

cross-env是运行跨平台设置和使用环境变量的脚本。它可以处理windows和其他Unix系统在设置环境变量的写法上不一致的问题。
配置以后使用 npm run dev去运行node,nodemon的作用是当代码更新以后会自动重启node
现在设置的当前环境是dev ,则通过process.env.NODE_ENV 可以获取到值为dev,通过环境变量去判断不同的运行环境,做出不同的操作。

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev":"cross-env NODE_ENV=dev nodemon ./bin/index.js"
  }
node的模块化概念

每一个模块,就是js文件,尽量的只做一件事,便于管理和维护,代码也比较清晰
bin/index.js就是开启一个服务

const http = require('http')
const PORT = 3000
const serverHandle = require('../app')
const server = http.createServer(serverHandle)
server.listen(PORT)
console.log('server run ...');
创建服务的回调逻辑,写在app.js中
const serverHandle = (req,res)=>{
    res.setHeader('content-type','application/json')
    const resData = {
        name:'zhangsan666',
        age:19
    }   
    res.end(JSON.stringify(resData))
}
module.exports = serverHandle
node初始化后端路由
路由和数据分离处理,符合模块化设计原则

先返回假数据,数据操作在另一个模块。
新建src/router目录,不同的路由分成不同的js文件,以blog.js为例

const handleBlogRouter = (req,res)=>{
    const method = req.moethod
    const url = req.url
    const path = url.split('?')[0]
    // 博客列表接口
    if(method === 'GET' && path === '/api/blog/list'){
        return {
            msg:'blog list'
        }
    }
}
module.exports = handleBlogRouter

注意:这个路由返回的是一个对象,在app逻辑处理函数中,要把这个对象接收以后,用json.strginfy转为json字符串传给前端。

 const blogData = handleBlogRouter(req,res)
    if(blogData){
        res.end(JSON.stringify(blogData))
        return false
    }
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到