You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
letdb=require("../libs/db.js");router.post('/findUser',async(req,res,next)=>{let{
id,
name,
skill
}=req.bodyletdata=awaitdb.connect(`select * from students where ?`,[{
id
}])res.send(data);});
Koa
Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。——引用Koa的官方文档的原话
Express
安装
可以参考Express官方文档
首先express环境
编写配置文件index.js,并执行
处理请求
处理GET请求:配合req.query
处理POST请求:需要body-parser模块,配合req.body
req.query
req.body
req.query
req.cookies
匹配路由参数
跨域
可在中间件中追加这句防止跨域
模板文件
这个设置视图文件的放置地方,然后配置jade为其模板渲染引擎,这里也需要安装jade模块实现
然后安装对应的模板引擎npm包
然后创建一个views文件夹,并在里面新建一个xxxx.jade文件,内容如下
在中间件中添加如下关键代码,res.render("文件名可省略后缀",{需要渲染在模板上的数据})
静态文件
Express提供了内置的中间件
express.static
来设置静态文件如:图片, CSS,JavaScript等你可以使用
express.static
中间件来设置静态文件路径例如,如果你将图片, CSS,JavaScript文件放在
public
目录下在
app.js
根目录下创建一个public
文件夹,然后在代码中添加设置完静态文件夹后我们可以用
res.sendFile(文件路径)
方法来把文件发送到前端注意路径要用绝对路径
__dirname + "/public/" + "upload.html"
还有值得注意的一点就是,对于每个应用程序,可以有多个静态目录,比如你可以按上传的文件类型分目录,当我们找某张图片的时候就会从这几个静态文件夹中一起找取
连接数据库
连接数据库,可以安装mysql模块实现
body-parser
然后通过
app.use()
方法调用cookie-parser
通过
app.use()
方法调用然后在中间件中通过
req.cookies
获取前端页面的cookie,是一个通过处理的对象cookieParser
中间件,可以用来保存用户的登陆状态,免密码登陆上传文件
node上传文件
热启动
全局安装后,就会有
supervisor
命令,它会自动检测你的文件变化,一旦变化则会自动重启过滤器
可以设置对路由的拦截,比如用在登录拦截等
filter.js
路由逻辑
此时访问
/getFemaleList
路由的时候就会进入过滤器逻辑,从而实现拦截功能ES6
要让Express在ES6下跑起来就不得不用转码器Babel了。首先新建一个在某目录下新建一个项目。然后跳转到这个目录下开始下面的操作
全局安装
然后,可以安装一些presets
在
package.json
里添加运行的脚本,这里就可以用ES6代码写程序,babel自动帮我们转ES5运行可以用
babel lib -d dist
命令将router文件夹的所有js转码脚手架
全局安装
在一个文件夹里面用
express
命令创建应用架构进入test文件夹安装依赖,推荐
cnpm
安装所有依赖启动应用
SET DEBUG=test:* npm start
访问在浏览器3000端口号
创建路由
进入到test目录的routes文件夹,然后复制
users.js
你可以改变
/home
这里的路径在
app.js
添加以下两条,该路由就完成了访问该路径
http://localhost:3000/test/home
配合await和async
Koa
所以Koa和Express框架其实很像,个人感觉Koa更轻量
安装
Koa
依赖node v7.6.0
或ES2015
及更高版本和async
方法支持安装完之后可以新建
my-koa-app.js
,然后写以下代码,就可以简单创建一个服务器处理请求和响应
Koa Context
将node
的request
和response
对象封装到单个对象中,为编写 Web 应用程序和 API 提供了许多有用的方法,一般将它简写为ctx
区别于
express
框架,是在回调函数里面分开写request
和response
为方便起见许多上下文的访问器和方法直接委托给它们的
ctx.request
或ctx.response
,不然的话它们是相同的。 例如ctx.type
和ctx.length
委托给response
对象ctx.path
和ctx.method
委托给request
。所以ctx
上面综合封装了多个request
和response
的方法下面这个负责响应请求体的数据
将响应体设置为以下之一:
也就是说如果传递数组或者字符串它会自动调用
JSON.stringify()
来序列化数据,并且response.status
如未被设置,Koa
将会自动设置状态为200
或204
。Context
ctx.query
ctx.request.body
ctx.query
ctx.cookies.get(name, [options])
注意
post
请求需要配合koa-bodyparser
模块和x-www-form-urlencoded
格式,如果是formdata
格式,可以用multer
模块来解析Request
别名以下访问器和
Request
别名等效:Response
别名以下访问器和
Response
别名等效:Egg
安装
直接使用脚手架,可快速生成项目文件夹
控制器
第一步需要编写的
Controller
和Router
配置路由映射
静态资源
Egg 内置了 static 插件,线上环境建议部署到 CDN,无需该插件
static 插件默认映射
/public/* -> app/public/*
目录此处,我们把静态资源都放到
app/public
目录即可跨域
在
config/config.default.js
添加以下代码并且在
plugin.js
添加以下代码服务
简单来说,Service 就是在复杂业务场景下用于做业务逻辑封装的一个抽象层,提供这个抽象有以下几个好处:
所以我们可以把操作数据库的逻辑放在 Service 层
定义 Service 文件
我们就可以在 Controller 层用
this.ctx.service.服务名xxx.方法xxx
来调用服务里面封装好的方法服务器代理
可以使用
curl
来代替第三方request
模块,或者内置的http.request
模块来实现服务器代理通讯The text was updated successfully, but these errors were encountered: