体验node Koa2中的封装

基于大神的一个已有node服务器(读者难以重现),体验使用Koa2的封装,封装写文件js.writeFile()方法。本文进行过程回顾。使用MacOS。


安装node、Koa2

node.js官网:https://nodejs.org/en/download/
升级npm: sudo npm install npm -g
安装n: npm install -g n
升级node.js版本: n stable
安装cnpm(非必需): npm install -g cnpm --registry=https://registry.npm.taobao.org
安装必需的程序包: npm install -g koa@next --save等等。

安装好模块后,还需要配置环境变量:
1 配置环境变量 vi ~/.profile
2 加入一行 export NODE_PATH=/usr/local/lib/node_modules
因为安装时,用了-g全局路径下安装,所以用/usr/local
2 让配置文件生效 source ~/.profile
备注:在Mac使用npm全局安装node_modules看到,应该是别人使用了bash,所以命令不同


开始封装

fs是node自带的模块
这里封装fs.writeFile()写文件的方法。该方法的参数要自行查看node文档。

fileRead.js 文件:

var fs = require("fs")
exports.writeFile = async function (filename, writeText) {
    let data = await writeFileData(filename, writeText)
    return data
}
function writeFileData(filename, writeText) {
     return new Promise((resolve, reject) => {
        fs.writeFile(filename, writeText, function (err) {
            if(err){
                console.log('出现错误!');
                reject("error")
            }else{  
                console.log('写文件结束');
                resolve('ok')
            }
        });
     });
}

testapi.js 文件:

//加载koa-router模块
var router = require('koa-router')();
const bodyParser = require('koa-bodyparser')
//加载fileRead.js
const fireControl = require('../util/fileRead')
router.use(bodyParser())

router.get('/writeTest', async(ctx)=>{
  let url = ctx.url
  let getData = await fireControl.writeFile("message.txt","1234");
  console.log(getData)
  ctx.body = getData
})

module.exports = router

index.js设置访问路径:

var router = require('koa-router')();
var serve = require("koa-static");
var views = require('koa-views')
var path = require('path')
var testapi = require('./testapi')//加载testapi.js

router.use(views(path.join(__dirname, '../view'), {
  extension: 'ejs'
}))
console.log('__dirname = ' + __dirname);//会在命令行控制台输出index.js的路径
router.use(serve("*省略*/node/koa/static/html",{ extensions: ['html']}));

router.use('/admin/api',testapi.routes(),testapi.allowedMethods())
module.exports = router;

写完后,启动node服务器node main.js比如main.js监听的是3000端口。
在浏览器输入localhost:3000/admin/api/writeTest
写入文件成功,则在页面显示ok,不成功显示error

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值