我是Node.js的学习者。
- 什么是Express.js?
- Node.js 的目的是什么?
- 为什么我们实际上需要 Express.js?使用 Node.js 对我们有什么用处?
- 什么是Redis?Express.js 附带它吗?
1) 什么是 Express.js?
Express.js是一个Node.js框架。它是目前最流行的框架(NPM 上最受关注的)。
.
它是围绕 Connect 中间件的配置和精细的简单性构建的。有些人将 Express.js 与Ruby Sinatra与笨重且固执己见的Ruby on Rails进行比较。
2) Node.js 的目的是什么?
您不必一遍又一遍地重复相同的代码。Node.js 是一种具有 HTTP 模块的低级I/O机制。如果您只使用 HTTP 模块,则必须重新实现许多工作,例如解析有效负载、cookie、存储会话(在内存或 Redis 中)、基于正则表达式选择正确的路由模式。有了 Express.js,它就在那里供您使用。
3) 为什么我们实际上需要 Express.js?使用 Node.js 对我们有什么用处?
第一个答案应该回答你的问题。如果不是,则尝试用普通的 Node.js(即仅使用核心模块)然后在 Express.js 中编写一个小型REST API 服务器。后者将使您的时间和代码行数减少 5-10 倍。
什么是 Redis?Express.js 附带它吗?
Redis 是一种快速持久的键值对存储。您可以选择使用它来存储 Express.js 的会话,但您不需要这样做。默认情况下,Express.js 具有用于会话的内存存储。Redis 也可用于排队作业,例如电子邮件作业。
查看我的关于使用 Express.js 的 REST API 服务器的教程。
MVC 但不是单独的
Express.js 本身并不是一个模型-视图-控制器框架。您需要将自己的对象关系映射库,例如用于 MongoDB 的 Mongoose、用于 SQL 数据库的 Sequelize ( http://sequelizejs.com )、用于许多数据库的 Waterline ( https://github.com/balderdashy/waterline ) 到堆。
备择方案
其他需要考虑的 Node.js 框架(https://www.quora.com/Node-js/Which-Node-js-framework-is-best-for-building-a-RESTful-API):
更新:我整理了这个资源,帮助人们选择 Node.js 框架: http: //nodeframework.com
更新 2:我们向 nodeframework.com 添加了一些 GitHub 统计信息,因此现在您可以在一页上比较 30 多个框架的社交证明级别(GitHub 星级)。
全栈:
只是 REST API:
Ruby on Rails 像:
西纳特拉喜欢:
其他:
中间件:
静态站点生成器:
这过于简化了,但是Express.js之于Node.js就像Ruby on Rails或Sinatra之于Ruby一样。
Express 3.x 是一个轻量级的 Web 应用程序框架,可帮助您将 Web 应用程序组织成服务器端的 MVC 架构。您可以为您的模板语言使用多种选择(例如EJS、Jade和Dust.js)。
然后,您可以使用MongoDB之类的数据库和Mongoose(用于建模)为您的 Node.js 应用程序提供后端。Express.js 基本上可以帮助您管理一切,从路由到处理请求和视图。
Redis 是一个键/值存储——通常用于 Node.js 应用程序中的会话和缓存。你可以用它做更多的事情,但这就是我使用它的目的。我将 MongoDB 用于更复杂的关系,例如 line-item <-> order <-> 用户关系。有些模块(尤其是 connect-redis)可以与 Express.js 一起使用。您需要在服务器上安装Redis数据库。
这是 Express 3.x 指南的链接:https ://expressjs.com/en/3x/api.html
Express.js 是一个 Node.js Web 应用程序服务器框架,专为构建单页、多页和混合 Web 应用程序而设计。它是 node.js 的事实上的标准服务器框架。
基于 Express 构建的框架。
几个流行的 Node.js 框架是基于 Express 构建的:
LoopBack:高度可扩展的开源 Node.js 框架,用于快速创建动态的端到端 REST API。
Sails:用于 Node.js 的 MVC 框架,用于构建实用的生产就绪应用程序。
Kraken:安全且可扩展的层,通过提供结构和约定来扩展 Express。
MEAN:自以为是的全栈 JavaScript 框架,可简化和加速 Web 应用程序开发。
Express 添加了非常简单的路由和对 Connect 中间件的支持,允许许多扩展和有用的功能。
例如,
我不能比这更简洁了。对于您的所有其他需求和信息,Google 是您的朋友。
ExpressJS 是 NodeJS之上的基本 Web 应用程序框架。
它可用于快速构建 WebApp、RESTFUL API 等。
支持多种模板引擎,如 Jade、EJS。
ExpressJS 仅保留极简功能作为核心功能,因此默认不支持 ORM 或 DB。但只要稍加努力,expressjs 应用程序就可以与不同的数据库集成。
有关创建 ExpressJS 应用程序的入门指南,请查看以下链接:
Express 是 Node 的一个模块框架,您可以将其用于基于服务器的应用程序,这些应用程序将“侦听”来自客户端的任何输入/连接请求。当您在 Node 中使用它时,它只是说您正在请求使用 Node 模块中的内置 Express 文件。
Express 是许多以 NodeJS 为后端的 Web 应用程序的“骨干”。据我所知,它的主要资产是处理两个主机之间“交互”服务的路由系统的天意。它有很多替代品,例如 Sails。
Express.js 是用于 Node 的框架,它最常用作 Node js 的 Web 应用程序。
以下是有关如何使用 express https://www.youtube.com/watch?v=QEcuSSnqvck快速设置节点应用程序的视频链接
它的力量的一个完美的例子
router.route('/recordScore').post(async(req, res) => {
let gold_nation = req.body.gold && req.body.gold.nationality;
let silver_nation = req.body.silver && req.body.silver.nationality;
let bronze_nation = req.body.bronze && req.body.bronze.nationality;
let competition_id = req.body.competition_id;
console.log(gold_nation)
console.log(silver_nation)
req.body.gold && await country.updateOne({"flag" : gold_nation}, { $inc: { gold: 1 } });
req.body.silver && await country.updateOne({"flag" : silver_nation}, { $inc: { silver: 1 } });
req.body.bronze && await country.updateOne({"flag" : bronze_nation}, { $inc: { bronze: 1 } });
console.log(competition_id)
//await competition.updateOne({"_id" : competition_id}, {$set: {recorded : true}});
//!! Uncomment this and change model/competition.ts set recorer to recorded
// this is commented out so you can test adding medals for every case and not creating competitions every time
res.status(200).json("Success");
});
async record(){
let index = this.competitions.findIndex(e => e._id == this.selectedCompetition);
let goldIndex = this.competitors.findIndex(e => e._id == this.goldWinner);
let silverIndex = this.competitors.findIndex(e => e._id == this.silverWinner);
let bronzeIndex = this.competitors.findIndex(e => e._id == this.bronzeWinner);
console.log(this.competitors[goldIndex]);
console.log(this.competitors[1-goldIndex]);
this.sportService.recordCompetition(this.competitors[goldIndex],
this.competitors[1-goldIndex],
null,
this.competitions[index]).subscribe((m:string) => this.reset(m))
}
reset(message: string){
this.statusMessage = message;
if(message == "Success"){
this.competitions = this.competitions.filter( (c) => c._id != this.selectedCompetition);
this.goldWinner = '';
this.silverWinner = '';
this.bronzeWinner = '';
}
setTimeout(()=>{
this.statusMessage = '';
}, 3000);
}
router.route('/registerCompetitor').post(async(req, res) => {
//! PROVJERI DA LI JE FORMIRANJE TAKMICENJA ZAVRSENO
let competitors = req.body.map( c => ({
name: c.name,
gender: c.gender,
nationality: c.nationality,
sport: c.sport,
disciplines: c.disciplines
}));
console.log(competitors)
await country.updateOne({"flag" : competitors[0].nationality}, { $inc: { numberOfCompetitors: competitors.length } });
await competitor.collection
.insertMany(competitors)
.then( u => {
res.status(200).json("Ok")
})
.catch(err =>{ res.status(400).json("notOk");
});
});
Express.js 由 TJ Holowaychuk 创建,现在由社区管理。它是 node.js 中最流行的框架之一。Express 还可用于开发各种产品,例如 Web 应用程序或 RESTful API。更多信息请阅读 expressjs.com 官方网站。
ExpressJS 是一个 Web 应用程序框架,它为您提供一个简单的 API 来构建网站、Web 应用程序和后端。使用 ExpressJS,您无需担心低级协议、流程等。适用于 Node.js 的快速、独立、极简 Web 框架
Pug(以前称为 Jade)是一种用于编写 HTML 模板的简洁语言。它 -</p>
生成 HTML 支持动态代码 支持可重用性 (DRY) 它是 Express 中最流行的模板语言之一。