我是Node.js的初学者。
Express.js是什么? node。js的目的是什么? 为什么我们需要Express.js?它对我们使用Node.js有什么用处? 复述是什么?它自带Express.js吗?
我是Node.js的初学者。
Express.js是什么? node。js的目的是什么? 为什么我们需要Express.js?它对我们使用Node.js有什么用处? 复述是什么?它自带Express.js吗?
当前回答
Express.js是Node.js的模块化web框架 它用于更容易地创建web应用程序和服务 js简化了开发,更容易编写安全、模块化和快速的应用程序。你可以在普通的旧Node.js中完成所有这些,但一些bug可能(并且将会)浮出水面,包括安全问题(例如。没有正确转义字符串) Redis是一种以快速著称的内存数据库系统 的性能。不,但你可以使用redis的Express.js 客户端
我不能比这更简洁了。对于你所有其他的需求和信息,谷歌是你的朋友。
其他回答
ExpressJS是一个基于NodeJS之上的最简单的web应用框架。
它可以用来快速构建WebApps, RESTFUL api等。
支持Jade、EJS等多种模板引擎。
ExpressJS只保留了一个极简的功能作为核心特性,因此没有orm或db作为默认支持。但只要稍加努力,expressjs应用程序就可以与不同的数据库集成。
关于创建ExpressJS应用程序的入门指南,请查看以下链接:
ExpressJS入门教程
ExpressJS是一个web应用程序框架,为您提供了一个简单的API来构建网站,web应用程序和后端。使用ExpressJS,你不需要担心底层协议、进程等。 Node.js的快速、简洁的web框架
Pug(早期称为Jade)是一种用于编写HTML模板的简洁语言。它−
生成HTML 支持动态代码 支持可重用性(DRY) 它是Express使用的最流行的模板语言之一。
这是它力量的完美例子
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?
Express.js是一个Node.js web应用服务器框架,专为 构建单页、多页和混合web应用程序。它是 node.js事实上的标准服务器框架。
基于Express构建的框架。
以下几个流行的Node.js框架都是基于Express构建的:
LoopBack:高度可扩展,开源的Node.js框架 创建动态端到端REST api。 用于MVC框架的 Node.js用于构建实用的、可用于生产的应用程序。 Kraken:安全且可伸缩的层,通过提供结构和扩展Express 公约。 MEAN:自以为是的全栈JavaScript框架 简化和加速web应用程序开发。
Node.js的目的是什么? 为什么我们需要Express.js?它对我们使用Node.js有什么用处?
Express添加了非常简单的路由和对Connect中间件的支持,允许许多扩展和有用的特性。
例如,
想要会议吗?它的存在 想要POST正文/查询字符串解析?这是 在那里 想要轻松的模板通过玉,胡子,ejs等?这是 在那里 需要优雅的错误处理,不会导致整个服务器 崩溃?
1) Express.js是什么?
Express.js是一个Node.js框架。它是目前最流行的框架(NPM中最受欢迎的框架)。
.
它是围绕Connect中间件的配置和粒度简单性构建的。有些人把Express.js比作Ruby Sinatra和笨重且固执己见的Ruby on Rails。
2) Node.js的目的是什么?
你不需要一遍又一遍地重复相同的代码。Node.js是一个低级的I/O机制,它有一个HTTP模块。如果你只是使用HTTP模块,大量的工作,如解析有效负载、cookie、存储会话(在内存或Redis中)、基于正则表达式选择正确的路由模式,将不得不重新实现。使用Express.js,它就在那里供你使用。
3)为什么我们真的需要Express.js?它对我们使用Node.js有什么用处?
第一个答案应该能回答你的问题。如果没有,那么尝试用普通的Node.js(即只使用核心模块)编写一个小型REST API服务器,然后再用Express.js。后者将节省5-10倍的时间和代码行数。
什么是Redis?它自带Express.js吗?
Redis是一个快速持久的键值存储。你可以选择使用它来存储Express.js的会话,但你不需要这样做。默认情况下,Express.js为会话提供内存存储。Redis也可以用于排队作业,例如,电子邮件作业。
请查看我关于使用Express.js的REST API服务器的教程。
MVC,但不是它自己
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
UPDATE2:我们在nodeframework.com上添加了一些GitHub统计数据,所以现在你可以在一个页面上比较30多个框架的社会认可水平(GitHub星级)。
完整:
http://sailsjs.org http://derbyjs.com/
只是REST API:
http://mcavage.github.io/node-restify/
Ruby on Rails:
http://railwayjs.com/ http://geddyjs.org/
辛纳屈:
http://expressjs.com/
其他:
http://flatironjs.org/ https://github.com/isaacs/npm-www http://frisbyjs.com/
中间件:
http://www.senchalabs.org/connect/
静态站点生成器:
http://docpad.org https://github.com/jnordberg/wintersmith http://blacksmith.jit.su/ https://github.com/felixge/node-romulus https://github.com/caolan/petrify