Cette fois, je vais vous apporter une explication détaillée des étapes de construction du projet Koa. Quelles sont les précautions pour construire le projet Koa. Voici des cas pratiques, jetons un coup d'œil.
Cet article présente le compte rendu détaillé du processus de construction du projet Koa et le partage avec tout le monde. Les détails sont les suivants :
Spring MVC plus MyBatis dans. Java est fondamentalement devenu le standard Java Web. Correspondant à Node JS sont Koa, Express, Mongoose, Sequelize, etc. Koa peut être considéré comme une version améliorée d'Express dans une certaine mesure. De nombreux projets Node JS ont commencé à utiliser des bases de données non relationnelles (MongoDB). Sequelize prend en charge les bases de données non relationnelles (MSSQL, MYSQL, SQLLite).
Construction du projet Koa
cnpm install -g koa-generator // 这里一定要用koa2 koa2 /foo
L'application générée par koa-generator contient déjà middleware couramment utilisé Middleware, je ne parle ici que de ceux qui n'y sont pas utilisés.
koa-lessdoit être utilisé avant statique, sinon il sera invalide.
app.use(require('koa-less')(dirname + '/public'))
Créez styles.less dans le dossier stylesheets et importez tous les fichiers modulaires.
De cette façon, tous les styles seront compilés dans un style.css. Faites simplement référence à style.css dans le modèle (carlin).@import 'foo.less'; @import 'bar.less';
Celui-ci doit être utilisé devant le routeur, sinon il sera invalide.
// 设置app keys,session会根据这个进行加密 app.keys = ['some secret hurr']; // 配置session config const CONFIG = { key: 'bougie:session', /** (string) cookie key (default is koa:sess) */ maxAge: 1000 * 60 * 60 * 24 * 7, overwrite: true, /** (boolean) can overwrite or not (default true) */ httpOnly: true, /** (boolean) httpOnly or not (default true) */ signed: true, /** (boolean) signed or not (default true) */ rolling: true, /** (boolean) Force a session identifier cookie to be set on every response. The expiration is reset to the original maxAge, resetting the expiration countdown. (default is false) */ renew: false, /** (boolean) renew session when session is nearly expired, so we can always keep user logged in. (default is false)*/ }; // 应用中间件 app.use(session(CONFIG, app));
, qui peut être utilisé comme un objet normal
// 赋值 ctx.session.statu = value // 取值 ctx.session.statu // 删除 ctx.session.statu = null
pour la configuration du proxy
const proxy = require('koa-proxies') app.use(proxy('/octocat', { target: 'https://api.github.com/users', changeOrigin: true, agent: new httpsProxyAgent('http://1.2.3.4:88'), rewrite: path => path.replace(/^\/octocat(\/|\/\w+)?$/, '/vagusx'), logs: true }))
Le développement se concentre principalement sur le contrôle de routage, y compris l'interface reposante et le
rendu de modèleObtention des paramètres (requête)
paramètre de requête (?param=a)
ctx.query.param
ctx.params.id
ctx.request.body
Les données auxquelles le serveur répond au client
restful
Rendu de modèlectx.body = yourData
Démarre à partir du répertoire des vues par défaut, aucun suffixe de fichier n'est autorisé
ctx.render('layout', yourData)
Rejetez la demande lorsque vous n'êtes pas connecté, comme ceci Renvoie 404
Cette opération sera incluse dans la route, comme "/a", "/b", etc. Elle doit être utilisé avant la sous-route, sinon elle sera invalideconst userAuth = (ctx, next) => { let isLogin = ctx.session.isLogin if(isLogin) return next() } router.use('/', userAuth)
Je crois l'avoir lu Vous maîtrisez la méthode dans le cas de cet article Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le php. Site chinois !
Lecture recommandée :
Comment empêcher l'effacement des données après l'actualisation de la page VuexjQuery implémente l'effet de suspension du clic de sourisCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!