Koa-generato脚手架
安装
npm install -g koa-generator
创建koa2项目
// koa2 project 默认使用jade模板引擎
koa2 –e koa2-learn // -e表示使用ejs引擎 koa2-learn为项目名
安装依赖
npm install
如果出现下面的提示
npm install --update-binary
启动服务
// 代码有修改 需要手动重新启动
npm strat
// 上下二选一
// 代码有修改 自动重新启动
npm run dev
访问
localhost:3000
// package.json
"scripts": {
"start": "node bin/www",
"dev": "./node_modules/.bin/nodemon bin/www",
"prd": "pm2 start bin/www",
"test": "echo \"Error: no test specified\" && exit 1"
},
npm start
npm test
其他的得加run
npm run dev
npm run prd
node中全局对象为global;web页面全局对象为window
router.get('/testAsync', async (ctx) => {
global.console.log('start', new Date().getTime())
const a = await new Promise((resolve, reject) => {
setTimeout(() => {
global.console.log('async a', new Date().getTime())
resolve('hello world')
}, 1000)
})
const b = await 'node'
const c = await new Promise((resolve, reject) => {
setTimeout(() => {
global.console.log('async a', new Date().getTime())
resolve('javascript')
}, 2000)
})
// await运行完 才会执行下面的代码
ctx.body = {
a,
b,
c
}
})
访问http://localhost:3000/testAsync时
await相当于用同步的写法,完成的异步的过程
await得到返回后,才会继续执行下面的代码
await后面跟一个promise对象.如果不是,会自动转化为promise对象