报错
E:\project\myTest\demo2>node app.js
koa deprecated Support for generators will be removed in v3. See the documentation for examples of how to convert old middleware https://github.com/koajs/koa/blob/master/docs/migration.md file:\E:\project\myTest\demo2\app.js:21:5
file:///E:/project/myTest/demo2/app.js:36
module.exports = app;
^
ReferenceError: module is not defined
at file:///E:/project/myTest/demo2/app.js:36:1
at ModuleJob.run (internal/modules/esm/module_job.js:145:37)
at async Loader.import (internal/modules/esm/loader.js:182:24)
at async Object.loadESM (internal/process/esm_loader.js:68:5)
代码块
import Koa from 'koa';
import Router from 'koa-router'
import json from 'koa-json'
import logger from 'koa-logger'
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const app = new Koa();
const koa = new Router();
app.use(require('koa-bodyparser')());
app.use(json());
app.use(logger());
app.use(function* (next){
let start = new Date;
yield next;
let ms = new Date - start;
console.log('%s %s - %s', this.method, this.url, ms); // 显示执行的时间
});
app.on('error', function(err, ctx){
console.log('server error', err);
});
app.listen(8889,() => {
console.log('Koa is listening in 8889');
});
module.exports = app;
解决
es导入与CommonJs混合,在文件底部,modeule.exports=app是CJS术语,ES模块等效项是
export default app;
即把底部module.exports=app改为export default app;