一、软件安装
1 Node.js:访问官网安装对应自己操作系统的安装包
2 Node包管理器npm(Node.js 0.6以后已经包含在发行包中)手动安装:cmd中执行命令curl http://npmjs.org/install.sh |sh
3 开发工具WebStorm:访问官网下载对应自己操作系统的安装包安装
二、Web开发所需
1 Express:它是目前最稳定,应用最广泛,而且Node.js官方推荐的唯一一个WEB开发框架.
安装方法:cmd下进入${nodejs} ode_modules目录执行npm install -gexpress
建立项目:
a.cmd工作空间下执行express -e(ejs)或-j(jade) <project>
b.进入其中运行npm install自动安装了依赖ejs和express
c.启动服务器执行node app.js 浏览器输入http://localhost:3000即可
2 附:express-partials:express 3.0(其他区别)后不支持对ejs模版引擎的layout模版
解决方法:
1.安装express-partials。
方法一:运行cmd用npm install express-partials
方法二:在package.json里面的dependencies添加"express-partials": "*"。然后运行cmd并切换 至项目目录运行npm install获得最新版。
2.app.js里面引用express-partials。
步骤一:添加引用var partials = require('express-partials');
步骤二:在app.set('view engine', 'ejs');下面添加app.use(partials());
3.在需要引用模板的地方调用layout:'模版名称'
示例
1
2
3
4
5
6
|
app.get( '/reg' , function (req, res) { res.render( 'reg' , { title: '用户注册' , layout: 'template' }); }); |
3 package.json 中所需模块例子
"dependencies":{
"express":"3.0.0rc5", //web开发框架
"ejs":"*", //ejs解析
"mongodb":">=0.9.9",//mongodb数据库
"connect-mongo":">=0.1.7",//session存入mongodb模块
"connect-flash":"*",//express 3.0取消flash()后的补丁模块
"eventproxy":"*"//解决深层事件回调模块
}
4 安装 supervisor每次更改不用重启 node app
安装很简单 cmd
npm install supervisor -g
使用
supervisor app.js
原 webstorm run 配置
C:Program Files odejs ode.exe
修改 run 配置
新建个 bat 内容: supervisor %1
webstorm 修改: 菜单 run->edit configurations -> path to node -> 复制你的 bat 路径 如 d:xxx.bat
5 设置开机启动
#!/bin/sh
#add for chkconfig
#chkconfig: 2345 70 30
PATH=/usr/local/bin/:$PATH
export PATH
cd /home/wwwroot/nodeproj
supervisor app.js >> /dev/null 2>&1 &
编辑/etc/init.d/nodeauto 设置执行权限和环境变量
chkconfig --add nodeauto
chkconfig nodeauto on/off
service nodeauto
6 forever 管理node进程服务
创建启动文件
sudo vim /etc/init.d/the_name_you_want
写入内容大致如下:
#!/bin/bash
# chkconfig: 345 99 01
# description: forever service
345 是启动级别,99 是启动优先级(序号),01 是关闭优先级(序号)。如果有其他服务依赖于 forever 服务,可以提高优先级,以确保其他服务启动时其可用。
继续:
DEAMON="/your/server/app.js"
LOG="/your/logs/file.log"
DEAMONPATH="/your/watch/path"
PID="/root/.forever/pids/forever.pid"
注意右边是值在引号内!!不然 forever 可能会喊它要 string,尤其是 LOG 地址。在 yum 安装环境中遇到过,make 安装环境未重现,这是今天的吐槽点二。
继续
export PATH=$PATH:/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules
注入环境变量,不然找不到 node 或者 -g 安装的包。上面已经提过,地址根据安装方法不同不一致,区别在于有没有 local 这一级,自己根据实际情况定夺。
继续
case"$1"in
start)
forever start -wal $LOG -m 0--watchDirectory $DEAMONPATH --pidFile $PID $DEAMON
;;
stop)
forever stop --pidFile $PID $DEAMON
;;
restart)
forever restart -wal $LOG -m 0--watchDirectory $DEAMONPATH --pidFile $PID $DEAMON
;;
list)
forever list
;;*)
echo "Usage: /etc/init.d/the_name_you_want {start|stop|restart|list}"exit1;;esacexit0
详细说明一下:
- -w 监视文件变更,forever 会重启 server 的子进程
- -l 指定输入日志
- -a 声明追加内容到已有日志文件 (没有 -a 会直接报错并中断…………谁会每次重新启动来关心 log 日志啊?!为什么 -a 不是默认值!!!这是今天的吐槽点三。)
- -m 最大运行次数
- --watchDirectory 监视文件的目录 path (这是一个奇葩的设定,不知道是我“打开的方式不对”,还是其他问题。如果设置了 -w 就必须设置一下这货,不然…… 后面用一节来专门说明这个问题。这是今天的吐槽点四。也是最大的吐槽点!!)
- --pidFile 字面意思