位置: 编程技术 - 正文

Nodejs初级阶段之express(node.js入门)

编辑:rootadmin

推荐整理分享Nodejs初级阶段之express(node.js入门),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs基础知识,nodejs基础,nodejs基本原理,nodejs基础教程,nodejs实战教程,nodejs进阶之路,nodejs实战教程,nodejs基础,内容如对您有帮助,希望把文章链接给更多的朋友!

上一篇《node.js 初体验》写的也不错,感兴趣的朋友可以了解下。

Node和NPM的安装够便捷了,不细说...有几点基础顺手提一下:

1.安装命令中的 “-g” 表示全局(global)

2.express的版本不是通常的 “-v” 来查看,而是 “-V”

3.安装express项目的命令如下

PS:模板引擎之类暂时不必care,不过俺当初学习搭建Node+express时用的是ejs,所以也就顺手一直用着了

  Node的小基友supervisor

  每次修改代码后会自动重启。懒程序员就指望这种省事省力的工具活着了:)

  安装:npm install -g supervisor

  执行:supervisor app.js

  另一个小基友forever

  虚拟机一关node服务就关了,不过forever可以让node服务不停止,介绍如下,安装和执行不细说啦,我懒:

  forever是一个简单的命令式nodejs的守护进程,能够启动,停止,重启App应用。forever完全基于命令行操作,在forever进程之下,创建node的子进程,通过monitor监控node子进程的运行情况,一旦文件更新,或者进程挂掉,forever会自动重启node服务器,确保应用正常运行。

  express项目目录  

  如上图就是一个express项目结构,简单过一下:

app.js: 项目入口,反正express爱叫app.js没辙,你可以改成index.js或者main.js都成。相当于php项目中的 index.php、index.htmlnode_modules: 存放项目的依赖库package.json: 项目依赖配置及开发者信息(这个要说就说多了,还是看文档好,俺就不误人子弟了。下期看看抽个小段单说Node模块)public: 静态文件如 css,js,img (PS:俺其实习惯叫static)routes: 路由文件(学习的重要攻克对象。尼玛业务好不好,路由是关键)Views: 页面文件(Ejs或者jade的模板,默认是jade,俺这用Ejs,在初阶练手最重要,所以都可以试试)

打开View 文件发现index.ejs比较不习惯,所以对app.js进行小改动:

“app.set('view engine', 'ejs');” 变成 “app.engine('.html', ejs.__express);app.set('view engine', 'html');”

上一行出现的ejs变量需要require ejs模块,增加代码“var ejs = require('ejs');”

最终的app.js如下:

  代码小解: 

因为针对的是初阶入门,俺们还是继续过一下express的使用与Node的方法哈:

require() 用于在当前模块中加载和使用其他模块;此方法是模块的基础,使用中大概有路径的概念就行。PS:JS文件可以去掉".js"后缀

   exports 表示模块的导出对象,用于导出模块的属性和公共方法。在项目routes文件夹下有index.js和users.js(路由有细说),都使用到exports对象导出对象,如行的routes.index和行的user.list;

   PS:一个模块的代码只会在模块第一次被使用时执行,不会因require多次而被初始化多次。

Nodejs初级阶段之express(node.js入门)

express() 表示创建express应用程序。简单几行代码其实就可以创建一个应用,如下:

app.listen() 就是在给定的主机和端口上监听请求,这个和node中http模块的http.createServer(function(){...}).listen()效果一致; app.set(name, value)和app.get(name)就是你想的那样,set()为设置 name 的值设为 value,get()为获取设置项 name 的值。如俺app.js的图片行中的一句“app.set('port', process.env.PORT || )”就是设置项目的port,在下面使用http.createServer时就可以使用app.get('port')来获取,只是俺偷懒没用来着;

了解app.engine()方法之前先看看express应用的安装命令:“express -e nodejs-product”,其中的 -e 和 -J 我们一开始已经提到,表示ejs和jade模板。

如果想把模板后缀改成“.html”时就会用到app.engine方法,来重新设置模板文件的扩展名,比如想用ejs模板引擎来处理“.html”后缀的文件:app.engine('.html', require('ejs').__express);

app.engine(ext, callback) 注册模板引擎的 callback 用来处理ext扩展名的文件。

   PS:__express不用去care,其实就是ejs模块的一个公共属性,表示要渲染的文件扩展名。

app.use([path], function) 使用中间件 function,可选参数path默认为"/"。使用 app.use() “定义的”中间件的顺序非常重要,它们将会顺序执行,use的先后顺序决定了中间件的优先级(经常有搞错顺序的时候);

最后介绍个很有用的express API:

app.render(view, [options], callback) 渲染 view, callback 用来处理返回的渲染后的字符串。

  路由实战:  

路径代码应该是项目中最本机的一部分了。express中创建一个或者一套新的handle非常简单,先看看express现有的,一会儿我们创建俩个实际的规则。

变量 routes 和 user 都是刚才require的模块,他们各自exports了index方法和list方法;其中Response.render()表示渲染view,同时传进对应的数据,Response.send()为发送一个响应;在设置路由时index和list方法作为回调函数最终执行。 

   流程大概了解啦,俺们也就实际搞一把,最easy的一种方式,简单俩步:

第一种方式就是在当前的routes/index.js或者routes/test.js中加几行代码如下

在app.js文件设置路由那块加上app.get('/test', routes.test);

   第二种方式就是多了两步,先新建一个模块如test.js文件,输出然后exports对应的方法;在app.js中require这个模块,再加一行设置路由即完成了。

  快速炫起来,集成Bootstrap: 

JS工程师使用Nodejs上手还是以快速搭建网站为主,所以才会介绍Express,那么为了让网站更快的体面起来,集成使用Bootstrap就是上佳选择,非常喜欢其响应式布局和整体系的脚手架。

PS:因为Bootstrap的JS插件都依赖jQeury,所以jQuery也一并引入了。

   前文已经说到了,静态文件都放在public文件夹中,切文件夹内已经帮我们把类目都分好了,images、 javascripts、 stylesheets。

   分别引入bootstrap.min.css文件至stylesheets目录下;jquery-1.x.x.min.js和bootstrap.min.js放到javascripts文件夹下。   然后俺们修改view/index.html把文件引入使用即可,下面放出俺在bootstrap demo的基础改的index.html,大家随意拿去使用和修改。

   如果样式有问题请检查下bootstrap的路径是否正确引入。

   启动项目之后觉得高大上很简单,有木有!!

  FAQ&总结: 

俺们的express项目暂时,且express也并没有涉及到任何数据库,这个事情需要第三方node模块,比如mysql或者MongoDB,后续俺会有一章单独介绍这块。

   express也不是Node中web框架的唯一选择,不过由于其文档较全,所以才以其为示例为大家介绍,其原理和实现其实细化之后并不复杂,也希望更多的JS工程师折腾出自己的Web框架。

好了,今天先给大家絮叨到这里,希望本文分享大家喜欢。

nodejs初步体验篇 前言:写这篇文章的由来:1.前段时间单位有新项目启动,服务端要做的工作不多也不算麻烦,就是处理一些中间层的服务,而且我们团队里面个个都会

Nodejs的express使用教程 Express是一个简洁、灵活的node.jsWeb应用开发框架,它提供一系列强大的特性,帮助你创建各种Web和移动设备应用。1.express组织结构appdemo|---node_modules------用

Nodejs Express4.x开发框架随手笔记 Express:webapplicationframeworkforNode.jsExpress是一个简洁、灵活的node.jsWeb应用开发框架,它提供一系列强大的特性,帮助你创建各种Web和移动设备应用。目录此文

标签: node.js入门

本文链接地址:https://www.jiuchutong.com/biancheng/370639.html 转载请保留说明!

上一篇:基于html5和nodejs相结合实现websocket即使通讯(基于HTML5和CSS3的响应式Web的设计与实现)

下一篇:nodejs初步体验篇(nodejs入门教程)

  • 个人所得税C表怎么填写
  • 二手房交易需缴纳的费用
  • 折旧会影响利润表吗
  • 库存现金的使用范围
  • 公司在筹备阶段可以不交社保
  • 进口商品仓库
  • 营业额和合同额的区别
  • 一般纳税人开红票怎么处理
  • 会费要交增值税吗
  • 生产加工型企业经营范围
  • 购入农产品的增值税率
  • 营业外收入需要计提销项税吗
  • 单位捐赠汽车账务处理要如何做?
  • 出口退税总是差进项票怎么处理
  • 金税盘在电脑上怎么打开
  • 普通发票打歪了可以用吗
  • 预收账款开票可以抵扣吗
  • 出口退税操作明细表格
  • 附加税是地方还是国家的
  • 工程款填入申报表应税服务还是应税劳务一栏?
  • 不动产取得以什么为要件
  • 购车保险属于什么费用
  • 公司注销固定资产如何处理
  • 新成立的公司股权转让交税吗
  • 员工给公司代垫的款项分录
  • iphone手机怎么把电话号码转到sim
  • 全免增值税企业有哪些
  • 支付的股权溢价款账务处理
  • 加工费计入成本怎么计算所得税
  • 建筑公司合作模式有哪几种
  • thinkphp5.0自定义路由
  • 股东投资款验资后可以转出吗
  • 增值税发票红字信息表
  • neo什么意思翻译成中文
  • java.exe进程可以关掉吗
  • 房地产企业土地增值税清算
  • 现金流量表的作用和意义
  • 古罗马广场意大利
  • SSD目标检测算法
  • php用在哪些方面
  • vue项目内html
  • 前端资源浏览器下载
  • vmware vmtools
  • php判断用户名是否正确
  • php微信公众号开源框架
  • 矿产资源补偿费是什么
  • c语言中函数的实参和形参
  • 税负率一般控制什么
  • 增值税发票2年了还能开吗
  • 免税法扣除法抵免法的区别
  • 适用会计准则或会计制度(填写代码)
  • 法人名称是什么意思
  • 电子发票怎么清盘操作流程
  • 已付款未开票怎么做账
  • 老生常谈的近义词
  • 净资产包含哪些方面
  • 小企业会计准则和企业会计准则的区别
  • 出口货物关税完税价格包括哪些
  • 交易性金融资产包括哪些项目
  • 公司收到个人转账收入
  • 管理费用和营业费用的比例
  • 外账进销存单据是怎么弄的?
  • 项目完工后员工工作总结
  • php的每条语句以什么结尾
  • mysql多个group by
  • win10创建家庭
  • win7系统怎么把桌面文件放到d盘
  • win10技巧 新功能
  • ubuntu配置vsftpd
  • win8系统怎么调出运行窗口
  • win10怎么显示磁盘已用空间
  • iphone手机文件怎么传到电脑
  • win7系统出现问题怎么修复
  • 笔记本win7电源已接通未充电怎么办
  • js判断浏览器是否为ie
  • combobox 添加选项
  • javascript如何学
  • 江苏省税务局电子发票
  • 进一步深造是什么意思
  • 公司投资款可否取回
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设