什么 快递.js ? 使用Node.js的目的是什么? 为什么我们实际上需要Express.js? 我们如何使用Node.js? 什么 Redis(Redis) ? 它是Express.js附带的吗?
10个答案
1) 什么是Express.js?
2) 使用Node.js的目的是什么?
3) 为什么我们实际上需要Express.js? 它对我们使用Node.js有何帮助?
什么是Redis? 它是Express.js附带的吗?
MVC,但不单独
选择
-
可以说-Express.js是一个Node.js模块(您在第一行中已经将其作为框架进行了处理)吗。 我听说过nodeJ这个词 模块 经常发生。 框架中的框架对我来说是个小新闻。 – 彩铃 评论 2017年5月22日0:43 -
是的,实际上,Express是一个节点包管理器(npm)模块(也称为包),就像从npm添加到应用程序的其他模块一样。 (如果你查看Node Express应用程序的源文件夹,你会看到一个名为Node_modules的文件夹。它将包含一个子文件夹,名为Express。)但它比npm以外的大多数其他模块要有用得多,因为它有大量的依赖模块,这些模块有效地为应用程序编码器提供了用于常见任务的API。 框架内的框架? 更像是可附加到服务器创建框架的实现框架。 – 行李箱 评论 2020年2月23日14:18 -
我觉得你根本没有在解释它的作用,你应该简要地解释一下web是如何工作的,开发人员是如何工作以及它是如何演变的,这样任何人都可以清楚地看到为了改进东西所表达的内容 – 伊贡·斯特曼。 评论 2021年10月11日23:21 -
什么是Express.js?
js是一个Node.js web应用服务器框架,用于 构建单页、多页和混合web应用程序。 它是 node.js事实上的标准服务器框架。
LoopBack:快速扩展的开源Node.js框架 创建动态端到端REST API。
帆船:MVC框架 Node.js用于构建实用的生产就绪应用程序。
Kraken:安全且可扩展的层,通过提供结构和 惯例。
含义:Opinionated fullstack JavaScript框架 简化并加速web应用程序开发。
使用Node.js的目的是什么? 为什么我们实际上需要Express.js? 它对我们使用Node.js有何帮助?
想要会话吗? 它就在那里 想要POST正文/查询字符串解析? 它是 那里 想要轻松地模板化玉、胡子、ej等吗? 它是 那里 希望优雅的错误处理不会导致整个服务器 崩溃?
Express.js是Node.js的模块化web框架 它用于更容易地创建web应用程序和服务 js简化了开发,更容易编写安全、模块化和快速的应用程序。 你可以在普通的旧Node.js中完成所有这些,但一些错误可能(也将)出现,包括安全问题(例如,不能正确地转义字符串) Redis是一个内存数据库系统,以其速度快著称 性能。 不,但您可以使用redis将其与Express.js一起使用 客户
router.route('/recordScore').post(异步(req,res)=>{ 让gold_nation=req.body.gold&&req.body.gold.nationality; 让silver_nation=req.body.silver&&req.body.silver.nationality; 让browne_nation=req.body.bronze&&req.body.bronze.nationality; 让competition_id=req.body.competition_id; 控制台.log(gold_nation) console.log(silver_nation) req.body.gold&&等待country.updateOne({“flag”:gold_nation},{$inc:{gold:1}}); req.body.silver&&等待country.updateOne({“flag”:silver_nation},{$inc:{silver:1}}); req.body.bronze&&waiting country.updateOne({“flag”:铜色名称},{$inc:{bronze:1}}); 控制台.log(比赛id) //等待比赛。updateOne({“_id”:比赛_id},{$set:{recorded:true}}); //!! 取消对此的注释并更改模型/竞争。ts将recorer设置为recorded //这是注释掉的,所以你可以测试每一个案例增加奖牌,而不是每次都创造比赛 res.status(200).json(“成功”); }); 异步记录(){ let index=this.competitions.findIndex(e=>e._id==this.selectedCompetition); 让goldIndex=this.competitors.findIndex(e=>e._id==this.goldWinner); 让silverIndex=this.competitors.findIndex(e=>e._id==this.silverWinner); 让bronzeIndex=this.competitors.findIndex(e=>e._id==this.bronzeWinner); console.log(this.competitors[goldIndex]); console.log(this.competitors[1-goldIndex]); this.sportService.recordCompetition(this.competitives[goldIndex], 竞争对手[1-goldIndex], 无效的, this.competitions[index]).subscribe((m:string)=>this.reset(m)) } 重置(消息:字符串){ this.statusMessage=消息; if(消息==“成功”){ this.competitions=this.competitions.filter((c)=>c.id!= this.selectedCompetition); this.goldWinner=“”; this.silverWinner=“”; this.bronzeWinner=''; } setTimeout(()=>{ this.statusMessage=“”; }, 3000); } route.route('/registerCompetitor').post(async(req,res)=>{ //! PROVJERI DA LI JE FORMIRANJE TAKMICENJA ZAVRSENO公司 让竞争对手=req.body.map(c=>({ 名称:c.name, 性别:c.gender, 国籍:c.国籍, 运动:c.sport, 规程:c.规程 })); console.log(竞争对手) 等待country.updateOne({“flag”:竞争者[0].国籍},{$inc:{numberOfCompetitors:competitors.length}}); 等待参赛者。收集 .insertMany(竞争对手) 然后(u=>{ res.status(200).json(“确定”) }) .catch(err=>{res.status(400).json(“notOk”); }); });