一、划分文件使用Router

创建一个routes目录,专门用于放置路由文件,通过module.exports导出供外部使用。

// 引入类
const Koa =require('koa');
// 引入koa-router
const Router =require('koa-router');
// 引入koa-body
const koaBody=require('koa-body');
const tagRouter =require("./routers/tag.router");
const userRouter =require("./routers/user.router");
const contentRouter =require("./routers/content.router");
// 创建对象
const app =new Koa();
app.use(koaBody());
const router =new Router({// 可以传递参数配置路由前缀
});
tagRouter(router);
userRouter(router);
contentRouter(router);
 
app.use(router.routes());
app.use(router.allowedMethods({
    // throw: true, // 抛出错误,代替设置响应头状态
    // notImplemented: () => '不支持当前请求所需要的功能',
    // methodNotAllowed: () => '不支持的请求方式'
}));
// localhost:3000
app.listen(8000,()=>{
   console.log("http://localhost:8000");
});
 
二、
tag.router.js的代码
// 添加 删除
const tagModel = require("../mong0db");
// 需要通过module.exports 导出
module.exports = function (router){
    router.get("/tag",async (ctx)=>{
      // const arr=[{text:"HTML"},{text:"sql"},{text:"Nodejs"}]
      // tagModel.inserMany(arr,function(err,docs){
      //     console.log(err);
      //     console.log(docs);
      // });
      const data =await tagModel.find({});
      ctx.body ={
          status:200,
          data:data,
          msg:""
      }
    /* 标准的JSON数据
    1.{
      status:200,
      data:[
            {id:1,text:"html"},
            {id:2,text:"sql"}
           ],
      mag:""
      }*/
    })
    router.post("/tag",async ctx=>{
          await tagModel.create(ctx.request.body);
          ctx.body ={
            status:200,
            data:null,
            msg:""
        }
    })
}

nodejs中router的使用的更多相关文章

  1. nodejs中常用加密算法

    在常用的nodejs+express工程中,为了安全在登录及表单传输时,应该都需进行加密传输,目前个人常用到的加密方式有下列几种: 1.Hash算法加密: 创建一个nodejs文件hash.js,输入 ...

  2. NodeJS中使用swig模板引擎

    NodeJS中的默认引擎是jade有点过于复杂,而且不是以HTML为基础的,学习成本和前端适应成本都很大.而ejs虽然简单,但不支持模板导入,而且效率一般. swig的语法简单,学习成本很低,符合常规 ...

  3. nodejs中获取时间戳、时间差

    Nodejs中获取时间戳的方法有很多种,例如: new Date().getTime() Date.now() process.uptime() process.hrtime() 平时想获取一个时间戳 ...

  4. 在Nodejs中如何调用C#的代码

    最近需要在Nodejs中用到C#的代码,从网上了解到可以采用Edgejs来实现Nodejs与C#的代码交互, 直接复制网上的代码运行总是出各种错,填了不少坑,现在把自己的案例代码大致整理一下,方便以后 ...

  5. nodejs 中自定义事件

    经常看到 req.on('error', function(){...}); 这种代码. 在nodejs中,可以使用 EventEmitter来实现. 具体的关键词有如下几个: var reqEven ...

  6. NodeJS中的异步I/O、事件驱动

    nodejs的主要特点是单线程.异步I/O.事件驱动.让我们先大概了解一下这些名词的意思. 单线程 单线程是任务按照顺序执行的,并且每次只执行一个任务,只有前面的任务执行完成以后,后面的任务才执行.在 ...

  7. nodejs中Stream的理解

    在nodejs中可以通过fs模块读写文件,我们来看下fs模块提供的接口: fs.readFile(filename, callback) 异步读取文件. filename是读取文件的文件名,如果是相对 ...

  8. Nodejs中的this

    以下内容都是关于在nodejs中的this而非javascript中的this,nodejs中的this和在浏览器中javascript中的this是不一样的. 在全局中的this console.l ...

  9. 探讨Nodejs中的作用域问题。

    在JS中有全局作用域和函数作用域,而在Nodejs中也自己的作用域,分为全局作用域(global)和模块作用域. js作用域: 以前学js的时候我们的全局对象是window,如: var a = 10 ...

  10. nodejs中exports与module.exports的实践

    只要是在nodejs中写自己的文件模块就少不了会遇到module.exports和exports的使用,看别人的代码大多都会使用“module.exports=exports=<对象/函数等&g ...

随机推荐

  1. SpringBoot中SpringMVC异常处理机制

    声明 源码基于SpringBoot 2.3.12 前置知识 Tomcat异常处理机制 使用例子 原理简要介绍 先来看下Spring Boot中默认的处理行为,如果DispatcherServlet执行 ...

  2. WebRTC 的音频弱网对抗之 NACK

    基础知识 音频的 NACK 机制在 WebRTC 中默认是关闭的. rtcp feedbacknack开启就可以了 WebRTC 的音频数据传输中,尽管对低延时有着很高的要求,但也实现了 NACK,以 ...

  3. NetBeans的一些快捷键

    Alt + Insert getter 覆盖toString方法 Shift+ F6 运行当前文件 F6 运行当前项目 Tab 完成代码片段 ctrl+\ 代码补全 Alt + Shift + F格式 ...

  4. Python 新环境常见问题

    Troubleshooting when run python script in new environment 1. Error: pluggy._manager.PluginValidation ...

  5. Abp框架使用Swgger注释加分组

    1.在ConfigureSwaggerServices中配置SwaggerDoc,并options.DocInclusionPredicate((doc, desc) => { return d ...

  6. vue element 可编辑表格行内验证

    <template> <div class="page-layout rataMdel"> <el-button type="primary ...

  7. K8S实现不同节点POD获取不同IP

    背景介绍 某混合云场景k8s,云上和云下的node,需要将同一个域名解析到不同的IP 方案 利用Coredns+2个第三方插件,fwdpolicy,conditional 编译Coredns(在win ...

  8. encodeURI和encodeURIComponent

    encodeURI和encodeURIComponent的作用对象都是URL,唯一的区别就是编码的字符范围: encodeURI不会对ascii字母.数字.~!@#$&*()=:/,;?+' ...

  9. WPFGroupBox控件自定义

    先上效果图 直接上代码(直接在Window.Resources里面添加这段代码) <Style TargetType="GroupBox"> <Setter Pr ...

  10. RR|RC隔离级别下行锁的情况

    测试准备 test库下建表tt CREATE TABLE `tt` ( `id` int(11) NOT NULL, `code` int(11) DEFAULT NULL, `name` varch ...