zoukankan      html  css  js  c++  java
  • Node.js 开发环境搭建及设置

    一、软件安装

        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 字面意思
  • 相关阅读:
    Windows 服务程序(一)
    API---注册表编程
    API---文件操作
    main(argc, char *argv[])
    C 自删除技术---批处理方式
    分治法排序
    TDD尝试:nodejs单元测试
    尝试create tech team
    Yum重装走过的坑
    求生欲很强的数据库
  • 原文地址:https://www.cnblogs.com/zhangwenzhao/p/3399264.html
Copyright © 2011-2022 走看看