Nodejs初阶之express

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

首先全局安装express 和express-generator

  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服务器,确保应用正常运行。
安装

npm install forever -g

使用:

# 启动
forever start ./bin/www  #最简单的启动方式
forever start -l forever.log ./bin/www  #指定forever日志输出文件,默认路径~/.forever
forever start -l forever.log -a ./bin/www  #需要注意,如果第一次启动带日志输出文件,以后启动都需要加上 -a 参数,forever默认不覆盖原文件
forever start -o out.log -e err.log ./bin/www  #指定node.js应用的控制台输出文件和错误信息输出文件
forever start -w ./bin/www  #监听当前目录下文件改动,如有改动,立刻重启应用,不推荐的做法!如有日志文件,日志文件是频繁更改的

# 重启
forever restart ./bin/www  #重启单个应用
forever restart [pid]  #根据pid重启单个应用
forever restartall  #重启所有应用

# 停止(和重启很类似)
forever stop ./bin/www  #停止单个应用
forever stop [pid]  #根据pid停止单个应用
forever stopall  #停止所有应用

# 查看forever守护的应用列表
forever list

express安装
首先假定你已经安装了 Node.js,接下来为你的应用创建一个目录,然后进入此目录并将其作为当前工作目录。
生成目录结构

  npm install -g express
   npm install -g express-generator
 express -e xxx

express项目目录  

image

如上图就是一个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进行小改动:

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

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

    最终的app.js如下:

Nodejs初阶之express_第1张图片
image

代码小解:  

app.set("port",3000)//设置端口号
app.set('views', path.join(__dirname, 'views')); //应用程序视图的目录或目录数组。 如果是数组,则按照它们在数组中出现的顺序查找视图。
app.engine(".html",ejs.__express) 
app.set('view engine', 'html');  //设置静态模板类型(默认为ejs)
app.use(express.json());
app.use(express.urlencoded({ extended: false })); //引入中间件接续json
app.get("/",routes.index) //使用不同的路由文件

路由

var express=require("express")
var router=express.Router()
var News=require("./news")


/**
 * 获取消息列表
 */
router.get("/",(req,res)=>{
  res.render("index")
})
 
/**
 * java服务器发送消息json到消息推送服务器
 */
router.post("/list",(req,res)=>{
    var reqparams=req.body.items;
    console.log(reqparams)
    new News().onsendNewList(reqparams)
   // res.send("c")
})
module.exports=router

你可能感兴趣的:(Nodejs初阶之express)