一、划分文件使用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. #0延时与for循环+fork join_none

    参考资料 (1) https://blog.csdn.net/moon9999/article/details/104207565 1.for循环+fork...join_none 注1: for循环 ...

  2. 使用Tablayout出现标题消失的原因:setupWithViewPager()的大坑

    TabLayout使用addTab方法添加标题,调用setupWithViewPager方法绑定ViewPager tabLayout.addTab(tabLayout.newTab().setTex ...

  3. UART之名词定义@@@(通用异步收发传输器:Universal Asynchronous Receiver/Transmitter),通常称作UART。

    通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART.它将要传输的资料在串行通信与并行通信之间加以转换.作为把并行输入信号转成 ...

  4. 什么是cache

    什么是cacheTo minimize the quantity of control information stored, the spatial locality property is use ...

  5. git clone 指定分支/指定commit

    方法一 下载整个branch及历史记录,文件较大,耗时 git clone --depth 1 [git-url] -b [branch-name] git reset --hard [commit- ...

  6. 取得SAP服务器主机名(host name)和端口号(port)函数[TH_GET_VIRT_HOST_DATA]

    本文转载至:http://www.baidusap.com/abap/function/4245 是要Vcode开发abap的时候,连接服务器的时候需要端口号,可以用函数TH_GET_VIRT_HOS ...

  7. SqlServer查看索引信息

    sp_helpindex tablename

  8. Uncaught ReferenceError: Vue is not defined(之一)

    报错信息 Uncaught ReferenceError- Vue is not defined 报错代码示例 <body> <div id="app"> ...

  9. maven本地安装jar包

    mvn install:install-file -Dfile=cs-pay-client-2.0.0.jar -DgroupId=com.test.pay -DartifactId=gh-epay- ...

  10. (jmeter笔记)jmeter打印日志

    Bean Shell常用内置变量   JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下: log:写入信息到jmeber.l ...