node.js Express框架入门

  一、为什么要用Express框架?

Node.js由于不需要另外的HTTP服务器,因此减少了一层抽象,给性能带了不少的提升,同时也因此提高了开发难度,实现一个POST数据的表单,例如:
<form>
<input type='text' name='title'/>
<input type='submit'/>
</form>
PHP获取POST请求参数:
echo $_POST('title');
request.getParamter('title');
nodejs:
案例:post.js
var http=require('http');
var querystring=require('querystring');
var util=require('util');
http.createServer(function(req,res){var post='';//注册data事件监听函数,每当接受请求体的数据req.on('data',function(chunk){post+=chunk;});req.on('end',function(){//解析成真正的post为真正的post请求格式//相当于Ext.decode()post=querystring.parse(post);//向前端返回res.end(util.inspect(post));});
}).listen(3000);


Node.js虽然提供了http模块,却不是让你直接用这个模块进行Web开发的。http模块仅仅是一个HTTP服务器内核的封装。

    二、Express框架

npm提供了大量的第三方模块,其中不乏许多Web框架,我们没有必要重复发明轮子,因而选择使用Express作为开发框架,目前最稳定且唯一一个Web开发框架。
提供更高层的接口外,还实现了许多功能,如下:
路由控制
模版解析支持
动态视图
用户会话
CSRF保护
静态文件服务
错误控制器
访问日志
缓存
插件支持
使用Express重新实现上方例子:
案例:getTitle.js

     三、安装Express 关于如何安装这部分可以参考一个美女博文:点击打开链接

如果一个包是某个工程依赖,我们需要使用本地模式安装即可,但是Express像很多框架一样都一共了快速开发工具,这个工具的功能通常建立一个网站最小的基础框架,在此基础上完成开发,当然可以自己建立,推荐使用这个工具,我们选择全局模式安装。
npm install -g express
安装完之后使用express --help
Express在初始化一个项目的时候需要指定模块引擎,模式支持Jade和ejs,为了降低学习难度我们推荐使用ejs。

    四、建立工程

express - t ejs pcat
当前目录出现了子目录pcat并且产生一些文件:
pcat
pcat/package.json
pcat/app.js
..........
提示我们进入pcat目录执行 npm install命令
它自动安装了依赖ejs和express,检查目录中的package.json文件内容是:
{
name:'application-name',
version:'0.0.1',
private:true,
dependencies:{
express:'2.5.8',
ejs:">= 0.0.1"          
}
}
启动dependencies属性中有express和ejs,无参数的npm install的功能就是检查当前目录下的package.json并自动安装所有指定的依赖。

    五、启动服务器

用Express实现的网站实际上就是一个Node.js程序,因此可以直接运行,我们运行的node app.js,看到Express server listening on port 3000 in development mode。打开浏览器访问即可。
如果在修改代码后不想重新启动服务看到效果,则使用supervisor实现监视代码修改和自动重启。   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509928.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kerberos 基本命令 - 持续更新

授权添加yarn账户 [rootxxx ~]# kadmin.local Authenticating as principal cloudera-scm/adminJAST.COM with password. kadmin.local: addprinc yarnJAST.COM WARNING: no policy specified for yarnJAST.COM; defaulting to no policy Enter password for principal &quo…

equal_range

equal_range 是C STL中的一种二分查找的算法&#xff0c;试图在已排序的[first,last)中寻找value&#xff0c;它返回一对迭代器i和j&#xff0c;其中i是在不破坏次序的前提下&#xff0c;value可插入的第一个位置&#xff08;亦即lower_bound&#xff09;&#xff0c;j则是在不…

Kerberos 下运行spark 报错 Requested user hdfs is not whitelisted and has id 995,which is below the minimu

异常如下 main : run as user is hdfs main : requested yarn user is hdfs Requested user hdfs is not whitelisted and has id 995,which is below the minimum allowed 1000 问题原因&#xff1a;是由于Yarn限制了用户id小于1000的用户提交作业&#xff1b; 解决方法&a…

node.js工程的结构

我们使用express生成了package.json&#xff0c;它只产生了javascript的app.js和routes/index.js。模版引擎ejs有文件index.ejs&#xff0c;此外还有样式表style.css。12讲问题&#xff1a;创建工程时候一直使用jade。要求用ejs一、app.js 工程的入口。 分析代码&#xff1a;/*…

C++面试(七)

1、 谈谈你做过的项目&#xff0c;你主要负责哪个模块&#xff0c;代码量是多大&#xff08;除去VC自动生成的那些代码&#xff09; 2、 参与项目的人数是多少&#xff1f; 5、 谈谈你对C三个特点的理解&#xff08;简单描述一下&#xff09;。 6、 为什么要封装&#xff0c;如…

kerberos 下运行spark 报错 Requested user hdfs is banned

启动运行报错 main : run as user is hdfs main : requested yarn user is hdfs Requested user hdfs is bannedFailing this attempt. Failing the application.ApplicationMaster host: N/AApplicationMaster RPC port: -1queue: root.defaultstart time: 1565170753121fina…

node.js路由控制

一、工作原理 当通过浏览器访问app.js建立的服务器时&#xff0c;会看到一个简单的页面&#xff0c;实际上它已经完成了许多透明的工作&#xff0c;当访问http://localhost:3000&#xff0c;浏览器会向服务器发送请求&#xff0c;包括请求的方法、路径、HTTP协议版本和请求头信…

C、C++和MFC中文件的操作

对文件读写的三种方法1.C中FILE *pFilefopen("1.txt","w");fwrite(" http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile ");//fseek(pFile,0,SEEK_SET);//fwrite("ftp:",1,strlen("ftp:"),pF…

spark 提交至yarn异常超时 Client cannot authenticate via:[TOKEN, KERBEROS]

spark-cluster提交任务&#xff0c;提示 exit code :10 异常&#xff0c;具体需要到容器日志中去查看 19/08/07 18:09:24 INFO yarn.Client: client token: N/Adiagnostics: Application application_1565171057576_0008 failed 2 times due to AM Container for appattempt_…

node.js模块引擎

一、什么是模版引擎 模版引擎是一个从页面模版根据一定的规则生成HTML的工具&#xff0c;PHP首发&#xff0c;随后出现了ASP、JSP都沿用这个模式&#xff0c;即建立一个HTML页面模版&#xff0c;插入可执行的代码。运行时动态生成HTML。缺点&#xff1a; 页面功能逻辑与页面布局…

勤学如春起之苗,不见其增,日有所长!

“工作三年&#xff0c;并不等于拥有三年的工作经验。”这句话告诉我们每天都要思考自己当天所遇到的问题&#xff0c;记录下来&#xff0c;并且思考这个问题的解决办法&#xff0c;每一周或两周总结这些问题和解决办法&#xff0c;归纳思考问题根源&#xff0c;学习解决问题的…

HBase ACL管理 Hbase 权限管理

场景&#xff1a;hadoop集群已经进行kerberos认证 启动Hbase相关配置Hbase权限分为以下五种&#xff1a;Read(R) : 可以读取给定范围内数据的权限 Write(W) : 可以在给定范围内写数据 Executor(X) : 可以在指定表执行Endpoints类型的协处理 Create(C) : 可以在给定范围内创建和…

node.js ejs的视图模块引擎

一、版本升级 Express从2.0升级到3.0,将ejs的用法忽略&#xff0c;改为用户自定义形式。引入ejs/index.js的模块&#xff0c;来支持ejs的模版引擎二、引入引擎的模块&#xff0c;然后在app中调用engine函数改造ejs引擎 app.engine(ejs, engine);将layout.ejs设置成默认的布局模…

文本文件和二进制文件的区别

广义的二进制文件即指文件&#xff0c;由文件在外部设备的存放形式为二进制而得名。狭义的二进制文件即除文本文件以外的文件。文本文件是一种由很多行字符构成的计算机文件。文本文件存在于计算机系统中&#xff0c;通常在文本文件最后一行放置文件结束标志。文本文件的编码基…

Kerberos Hbase Api 操作

初始化连接加载配置参数&#xff0c;这里只创建连接&#xff0c;具体操作hbase的api没有变化 static { try{ Configuration conf HBaseConfiguration.create();conf.addResource(new Path("config/hbase-site.xml"));//读取配置文件conf.set("hadoop.securi…

ndoe.js实战之开发微博第一讲之工具准备

内容&#xff1a;搭建开发环境和视图制作。一、创建项目 1.express ejs blog 创建项目cd blog 进入项目npm install 加入包的依赖2.加入ejs视图模版引擎支持加入文件 expand_modules/ejs/index.jsvar enginerequire("./expand_modules/ejs");在app中改造引擎app.e…

MySql索引的原理

数据库索引&#xff0c;是数据库管理系统中一个排序的数据结构&#xff0c;以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B树。 在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&#xff08…

SparkStreaming 异常:java.lang.NoSuchMethodError: scala.Predef scope()Lscala/xml/TopScope

SparkStreaming运行报错 19/05/05 22:35:18 INFO SparkEnv: Registering OutputCommitCoordinator Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$scope()Lscala/xml/TopScope$;at org.apache.spark.ui.jobs.AllJobsPage.<init>(…

node.js微博案例第二讲

一、mongodb数据库安装 1.安装包下载&#xff1a;http://www.mongodb.org/downloads2.开始安装解压放入D:\Program Files\目录下。(推荐文件名为mongodb)创建Data、log和Data/db文件夹将mongodb的数据库文件D:\Program Files\mongodb\data\db目录下执行命令&#xff1a…

Spark提交 指定 kerberos 认证信息

spark-submit --principal hdfs/hostnamejast.COM --keytab hdfs-hostname.keytab --jars $(echo lib/*.jar | tr ,) --class com.jast.test.Test test.jar