Nodejs初级阶段之express

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

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

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

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

express -e nodejs-product -e, --ejs add ejs engine support -J, --jshtml add jshtml engine support (defaults to jade)

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.html
node_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如下:

Nodejs初级阶段之express

  代码小解: 

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

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

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

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

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

var express = require('express'); var app = express(); app.get('https://www.jb51.net/', function(req, res){ res.send('hello world'); console.log('hello world'); }); app.listen('8808');

app.listen() 就是在给定的主机和端口上监听请求,这个和node中http模块的http.createServer(function(){...}).listen()效果一致;
     app.set(name, value)和app.get(name)就是你想的那样,set()为设置 name 的值设为 value,get()为获取设置项 name 的值。如俺app.js的图片16行中的一句“app.set('port', process.env.PORT || 3000)”就是设置项目的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模块的一个公共属性,表示要渲染的文件扩展名。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgzdpd.html