体验node Koa2中的封装

来源:互联网 发布:淘宝写论文查重靠谱吗 编辑:程序博客网 时间:2024/06/18 10:10

基于大神的一个已有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.jsconst 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.jsrouter.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

原创粉丝点击